improve efficiency on identifiers; fix derivedFrom