separated things back into typereasoning for sanity purposes