add hierarchical cluster algorithm