Add Document class and allow it to have declarative field mappings