add url parsing and some initial unit tests