filled in cachematrix.R