Isolating modules and library

Essa é uma proposta para resolver a issue #30 .

Isolando os módulos dessa forma facilita a criação de um novo módulo.