add Stop() DoStop() CanStop() and finish DoStart()