separating modifiers out into reusable modules