implementação base