Fixup model and add urls

Refactor model a bit and add URL support. Fixes #27