Refactoring KarmaObserver and added Karma model