IR: create a better commute function. added todos