Breaking a bunch of stuff for restructuring the code to support multiple levels.