refactory request controller - part 1