Refactored factory and service with facade pattern
Added missing classes to previous commit