Factored world creation into different classes.

Known bug: image rendering broken