Request types api

Closes #46 
yeah, can rebase when that's done or whatever.