make more use of private _box