change approach to mixins, cleanup.. still in progress and not sure this is worth doing