anchor.diff:    }
   
     void _onListen() {
  -    print("Constructing");
       load();
       game.resourceManager.load().then(run());
     }
   
     void _onPause() {
  -    print("Pause");
       game.stage.removeChildren();
       game.stage.juggler.clear();
     }
   
     void _onResume() {
  -    print("Resume");
       load();
       game.resourceManager.load().then(run());
  -    
  +
   
     }
   
     void _onCancel() {
  -    print("Deconstructing");
       game.stage.removeChildren();
       game.stage.juggler.clear();
     }
  -
  +  /**
  +   * Overwrite if you want to load resources.
  +   * */
     load() {}
  -  run() {}
  +  
  +  /**
  +   * You must overwrite this for using the state.
  +   * Called after load has completed. 
  +   * */
  +  run();
   
     String get name => _name;
   
  -  String get nextState => _nextState;
  +  /**
  +   * Change the _nextState's value.
  +   * */
  +  String get nextState => _nextStateName;
   
  -  set nextState(state) => _nextState = state;
  +  set nextState(state) => _nextStateName = state;
   
  +  /**
  +   * You can send message to the StateManager.
  +   * */
     void addMessage(message) {
       _controller.add(message);
     }
   
  -  void pauseStream() {
  +  /**
  +   * This methodes end the state, but we can come back to this state
  +   * */
  +  void endState() {
       _controller.add(PAUSE);
     }
  -
  -  void closeStream() {
  +  /**
  +   * This kills that state, so you can not return back to this state
  +   * */
  +  void terminateState() {
       _controller.close();
     }
   
  
positive.code: part of dartrocket;
  
  abstract class State extends Stream<String> {
  
  
negative.code: 
    StreamController<String> _controller;
    String _name;
    String _nextStateName;
    Game game;
  
    State(this._name, [String nextState = null]): _nextStateName = nextState {
      _controller = new StreamController<String>(onListen: _onListen, onPause:
          _onPause, onResume: _onResume, onCancel: _onCancel);
    }
    /**
     * This methode can only be used by the [StateManager].
     * */
    StreamSubscription<String> listen(void onData(String line), {void
        onError(Error error), void onDone(), bool cancelOnError}) {
      return _controller.stream.listen(onData, onError: onError, onDone: onDone,
  