basic mixin implementation