finish to implement user interruption