Refactor Factorys