worked out Jacobians -- need testing