Mode : make this an abstract class w/ factory to return new _ModeProxy