Does this need to be a trait at all and not just left a constructor parameter? dynamically changing these within one store seems very edge case