In the dynamic shovel case, look up some extra information for source and destination. Also bring some badly-needed abstraction to the templates.
More comment.