anchor.diff:      _context.focus();
     }
   
  -  void _showOuput(String message) {
  -    _outputpanel.text += message;
  -  }
  -
  -  void _showErrorOuput(String message) {
  +  void _clearOutput() {
  +    _outputpanel.text = '';
  +  }
  +
  +  void _showOuput(String message, {bool error: false}) {
  +    message = message.trimRight() + '\n';
       SpanElement span = new SpanElement();
  -    span.classes.add('errorOutput');
  +    if (error) span.classes.add('errorOutput');
       span.text = message;
       _outputpanel.children.add(span);
  -  }
  -
  -  void _clearOutput() {
  -    _outputpanel.text = '';
  +    span.scrollIntoView(ScrollAlignment.BOTTOM);
     }
   }
   
  
positive.code:     // Set up iframe.
      executionService = new ExecutionService(_frame);
      executionService.onStdout.listen(_showOuput);
      executionService.onStderr.listen(_showErrorOuput);
  
      runbutton = new DButton(querySelector('#runbutton'));
      runbutton.onClick.listen((e) {
  
negative.code: import 'services/common.dart';
  import 'services/compiler.dart';
  
  // TODO: we need blinkers when something happens. console is appended to,
  // css is updated, result area dom is modified.
  
  