updated for Difference & CPU save