Type checker is all there, not tested yet