add BaseEnsemble as abstract base class and refactor ModelMultiplexer