throwError should be private