Implement class inheritance. Each Gate instance should be queueable by inheritting from Queue::Node. Keep in mind that you have to specify both template arguments. The first one is the type to be queued, and the second is the maximum amount of cores.