Wow. just... wow.  Fixes #84 correctly and cleanly.  Rely on templates.