Alpha version

Right now it works, but needs much refactoring.
Not to mention some test are breaking and others are needed.