What Makes A Function Differentiable