added PATCH, PUT, and DELETE