rewrite PerformanceMonitor using inheritance