updates with ifs