Added a bunch of new factories for type checking. Need to add a logger
as well as add some enums and stuff.