nit: use `for self.box.each |&box| { ... }`, it's shorter and more efficient.