Huge refactoring on the project. BEWARE IT'S STILL BUGGY.