terminei a implementação básica