Reformulacao e modularizacao completa do codigo