update basic logic