Make collector runner lazily evaluate messages

So that messages can be sent and evaluated as they come.