Initial stab at the compiler