removed some unused classes
upgraded Factory Method + some more refactoring