keep lists sorted
just pass around the whole buffer