refactoring, implement request feature #3