implementação das classes e interfaces