compiles 98%