rearranging and building in caching eigenvectors
vm almost died, saving work