add inverse and special cases