split HandleRequest method