add soft kmeans ,renew the general structure