Version 2

Reworked and refactored entire project. This should be an (almost)
functional version.