implement Box.map