Many implementations
Deleted useless