singleton
Added interfaces
no more singletons