Refactor on notification to the new model
Merge remote-tracking branch 'origin/feature/notification_refactor' into refactor/lazy_loading

* origin/feature/notification_refactor:
  Refactor on notification to the new model