modified:   cachematrix.R