use Cluster_Type to hide underlying cluster array, which will use a small size type for small k, and thus save mems