attempt to refactor preference mediator
tidy up mediator