Now calculates and caches inverse