refactored IR to allow for classname and typename