Add the basics for Contact

We will need the basics in place for `Contact` in order to do #101 properly.