Contact page has working data model.

Closes #27, #15, ##17, #19, #21