Change logic and flow and put decisions into should_update

return faster
calculate today once