some unit tests
make queue size counters public to make them testable
documentation