Added initial pass at cacheMatrix