Shuffle some more logic around.

* Now there is one monolithic #run method. This does not scale well.