Primeiro commit completo

+ Todas as funções estão escritas
+ Código nunca foi compilado, então não funciona ainda.