right, it's ugly... and really we only need one thing: the list of columns (as long as those do match the names of the payload props)