Ported to AngularDart