Convert to Mixin

Better for cross-cutting use