Finished draft of Ensemble refactor.