Change Haversine to inherit from Function

Allows for aliasing of value.
Refactor specs