better derivation, in progress 3