Improved ToolStateObserver