Working version, box class refactored