implementation of makeCacheMatrix and cacheSolve functions