some work on derivative funcs