context-agnostic mixin