added first pass commute calculation functionality