Simpler and more powerful decorator

See #48 for all the gory details.