updated has_notes mixin