big refactor

Create a base class for instantiation. The new run method accepts a Ruby hash of config overrides. The list of volumes is created only once per `run'.