added function update