done with cachematrix.R