factored into route controller