Working Event Observer. Merge back later