private Note addNoteToTarget(AnnotatableThing target, NoteContent noteContent, UserId author, long timestamp) throws NotesException {
final String subject = noteContent.getSubject().or("");
final String body = noteContent.getBody().or("");
final org.protege.notesapi.notes.NoteType noteType = org.protege.notesapi.notes.NoteType.Comment;
Annotation annotation = notesManager.createSimpleNote(noteType, subject, body, author.getUserName(), target);
annotation.setCreatedAt(timestamp);
final NoteId noteId = NoteId.createNoteIdFromLexicalForm(annotation.getId());
NoteHeader noteHeader = new NoteHeader(noteId, Optional.<NoteId>absent(), author, timestamp);
return Note.createNote(noteHeader, noteContent);
}