Almost compiles, still need to work through a few errors, but mostly there