refactored request controller