expose canonical helper function