Domain Model. closes #1