Restructured the project, added a bunch of new packages