refatorando factory method