add existence checking in remove()