refactor event observer parser