mixture implementation abstracted behind select method