more documentation, abstracted the different request types