add abstract distance
Merge branch 'develop'