Why not using this.storage, and why using underscore ? Some Angular convention ?
It seems the convention in Dart (not sure about this...) is to use underscore when you want to have some public getter/setter of a private property.
var _property
get property => _property;