uploaded edited cachematrix()