added inverse method