redefine changed to use ~