algo tested. need to run real data in cluster.