use std::set for now instead of QUEUE