Refactored from Factory to Facade