While elegant, overriding delete() is maybe not such a good idea in the view of general clarity. Instead, delete() now throws an exception, encouraging the programmer to use disable()