Reimplement how Buffer Queue works. Still not satisfied.
Try a new approach. Cleanup hacked solution.
Added output formatting.