added an abort()