improved cluster assignment