This is how Augment does it. Maybe directives are not so bad after all.