Refactored Factory to be static.