refactor: use map<string, float> for control values instead of vector<pair<string, float>>