Fixed observer implemenation