added concept of cluster, added more tests