added assignment 2, which create a 'special' matrix for caching its inverse