adding new factory
refactorying to factory