Make it more modular so we can eventually get at the diff data