update new funtion