clustering incorporated. still needs to recompute clusters & decide when to stop