implementação das classes