add more tests and a lock free array queue