Add templates.
Fix a bunch of other stuff, which resulted delayed propagation.
Rewrite Upwardable internals.