implemented special matrix that will allow for caching the calculation of the inverse