strip back to 2 flexible mixins