logic updates