added mean-shift clustering algorithm