added interfaces, singleton, and logmanager