versão funcional com unitofwork