add unified distance conversion