Falta esclarecer a duvida do hash com os profs e testar.
Nao compilado ainda, por isso nao sei se está tudo certo, mas a estrutura está lá.