Throw an exception if distance is negative, maybe?