Implementacao do Factory