Building out the types engine