writing the initial document model and starting to write unit tests