abstract request unit