logic update