breaking out uri parser

q'ing

#17, #20, #21