public BaseBehavior(IBehavior behavior, IBehavior superclass, Machine machine) : base(behavior, behavior == null ? 0 : behavior.NoInstanceVariables) { if (machine == null) { throw new ArgumentNullException("machine"); } this.superclass = superclass; this.machine = machine; this.scope = machine.CurrentEnvironment; }