removendo enum de tipo para hierarquia. A api da classe nao muda, mas internamente trabalho com tipos