Feature/restructure

Merging all my changes from my restructure branch.