request implementation