compiles without errors but still a lot of work to do