commute and commuteMap, re-impl with append