add abort feature