Implement Cluster and tests for it