ticket:1. Add UserContact, improve User definition. No implementation, waiting for tests.
ticket:1. Improve layout.
ticket:1. A bunch of new tests. Ready to write code.