derivative implementation started