fix signature match
add create_request() and send() for granular request handling
add error handling and appropriate responses
basic API tests