first try cachematrix.R