Tests passing, gotta port it over to the spec.

Also this peek/dequeue thing is kinda hacky; can we eliminate?