refactored to have explicit tooltip dependency