Project Setup 1

The first step of the project setup. The code is already more portable
and modular, I just need to keep the structure of the project like this
now.