use std::list instead of std::set for caid/capid pairs to support duplicate caids