simplify the API, add resume()/pause() pair/Resume class
add/fix unittests for  Resume class, API change