moved away from singleton