Started rewriting compiler