These are the functions that are pushed to the engines, so it wouldn't make sense to have them as methods on `DecoratorBase`.  I'd like to remove the duplication, but there isn't a clean way of doing so at the moment.