doesn't rely on ordering of note content