anchor.diff:  
     });
   
  +  group('Using Tweenable', () {
  +
  +    test('it basically works', () {
  +
  +      var myClass = new MyTweenable();
  +
  +      // The following are expected to be called exactly once
  +      // Note that `expectAsync1` will soon be deprecated.
  +      Function expectOnBegin     = expectAsync1((tween){});
  +      Function expectOnComplete  = expectAsync1((tween){});
  +      Function expectOnStart     = expectAsync1((tween){});
  +      Function expectOnEnd       = expectAsync1((tween){});
  +
  +      TweenCallback myCallback = new TweenCallback();
  +      myCallback.onEvent = (type, tween) {
  +        switch(type) {
  +          case TweenCallback.BEGIN:
  +            expectOnBegin(tween);
  +            break;
  +          case TweenCallback.COMPLETE:
  +            expectOnComplete(tween);
  +            break;
  +          case TweenCallback.START:
  +            expectOnStart(tween);
  +            break;
  +          case TweenCallback.END:
  +            expectOnEnd(tween);
  +            break;
  +          default:
  +            print('DEFAULT CALLBACK CAUGHT ; type = ' + type.toString());
  +        }
  +      };
  +
  +      Tween.to(myClass, MyTweenable.ANSWER, 1.0)
  +        ..targetValues = [666]
  +        ..easing = Linear.INOUT
  +        ..setCallback(myCallback)
  +        ..setCallbackTriggers(TweenCallback.ANY)
  +        ..start(myManager);
  +    });
  +
  +  });
  +
   }
positive.code: 
      test('it basically works', () {
  
        // This is a very crude test, not covering much of the code base
        // Some ideas of tests :
        // - backward events
        // - meaningful exceptions :
        //   - myClass with null properties
        //   - myClass with non-numeric properties
  
        Tween.registerAccessor(MyClass, new MyAccessor());
  
        // The following are expected to be called exactly once
  
negative.code:       myCallback.onEvent = (type, tween) {
          switch(type) {
            case TweenCallback.BEGIN:
              expectOnBegin(tween);
              break;
            case TweenCallback.COMPLETE:
              expectOnComplete(tween);
              break;
            case TweenCallback.START:
              expectOnStart(tween);
              break;
            case TweenCallback.END:
              expectOnEnd(tween);
              break;
            default:
              print('DEFAULT CALLBACK CAUGHT ; type = ' + type.toString());
          }
        };
  
        Tween.to(myClass, MyAccessor.XY, 1.0)
          ..targetValues = [20, 30]
          ..easing = Elastic.INOUT
  