Full source upload

This is the version 1 source code, i'm going to remake it to clear the
code and comment as much as possible