initial implementation of redefinition