Improving the library, indenting the code.

I've been made some improvements into the project.
I don't have time right now to refactor the code, but i wanna do, there are some design principles that should be followed.

An personal suggestion: **TDD**, unit tests are welcome, it keep's the project integrity while people contributing on it.

Thanks,
Hugs.