Reshuffle code
Support class decls
Fill in some type decl support