refactored to depend on AQM_Common