Refactorings
Move files around
Make a proper library