raw pointers are replaced with unique_ptr in 'BlockingQueue' class