updated for Dart 1.0