add: distance.hpp