depends on how we want the lifecycle of the class to work. Currently, you could use the same instance and call initialize/shutdown then initialize/shutdown and each time, between initialize and shutdown, the mode would be different. a lazy val would eliminate that. We may want to make it such that the cluster can only be initialized/shutdown once. But unless we do that, we'll have a mode pointing to a non-existent conf object.