handle request body properly