fix bug
add delete function