implement erase