boolean (@NotNull T object) { synchronized (reference) { List<T> list = reference.get(); if (list != null) return add(predicate, list, object); reference.set(new SmartList<>(object)); return true; } }