add k_means
refactored
refactored