add abstract_singleton_methods