implemented put, post, get, and delete