added blockingqueue implementation