derivatives implemented