implment func
 change error