sending back up for vignesh to improve the similarity function