Make the uri property optional, give it a sane default, add tests and documentation for it.