move around initialization of algorithm, lazy saving of centroids
calculate averages the correct way, not the wrong way