primeira versão. Ainda não completo.