add separate validation_controller and refactor user_controller
dissolve dependencies #69