abstract user-select to mixin