smaller codebase using factories