add contact state and page

Marc adds the contacts branch, but hasn't yet merged