better type designs for http, neater syntax, etc.