reimplemented for the most part
del