add updates: singleton, factory