Reimplemented delete to make it much faster.
Added comment explaining the DeleteResult type