Rewritten typeckecer.. some bugs there still