Use a standalone mixin to avoid a too-fat-class.
See https://github.com/alivedise/gaia/commit/3795671ee940399ba9278be2f69944d384a4935d#diff-34f9a826cf1dd2bb0bc06f1faed2c334R68