better derivation, in progress 2