converted from singletons