DRYed up exercise and solution new_version and derive actions and improved routing