DRY up controller - move specialise initialisation logic to middleware