Refactored timeline such that (box) and (box, data) updates are handled independently
Added waitFor() unit test