add derivation support