This is the meat of the new interaction, please take a look @rtibbles.