Further encapsulated factory, logger and created new class with interface for notifications