HTTP  reequest wrapper with data packaging fucntionality
		Args:
			op 			http verb in str
			uri 		address of the request
			payload		data to be sent in dict format (default: None) 
						If not provided no data is sent
			return 		code and req response dict (single or list)

def _req(self, op, uri, payload = None):
		'''HTTP  reequest wrapper with data packaging fucntionality
		Args:
			op 			http verb in str
			uri 		address of the request
			payload		data to be sent in dict format (default: None) 
						If not provided no data is sent
			return 		code and req response dict (single or list)'''
		if DEBUG:
			print(('uri', uri))

		req_fp, content_type = self._get_req_fp(op)
		
		if payload:
			if content_type:
				r = req_fp(uri, payload, auth = self.api_auth, headers = content_type)
			else:
				r = req_fp(uri, payload, auth = self.api_auth)
		else:
			r = req_fp(uri, auth = self.api_auth)
		
		if r.status_code == requests.codes.ok:
			data = r.json()
		else:
			data = None
			pass
		#keep for debugging 

		#in case there's an error and we're debugging
		self._parse_req(r)

		return r.status_code, data