- struct _change* next;
-} change_t;
-
-change_t* change_new(U16 frame, int function, float value, interpolation_t* inter);
-void change_free(change_t* change);
-void change_init(change_t* change);
-void change_append(change_t* first, change_t* newChange);
-float change_value(change_t* first, U16 frame);
-
-typedef struct _changeFilter
+ spline_t spline;
+ arc_t arc;
+ flagparams_t params;
+ struct _state* next;
+} state_t;
+
+state_t* state_new(U16 frame, int function, float value, interpolation_t* inter);
+void state_free(state_t* state);
+void state_init(state_t* state);
+state_t* state_at(state_t* state, U16 frame);
+void state_append(state_t* state, state_t* newState);
+void state_insert(state_t* state, state_t* newState);
+float state_value(state_t* first, float frame);
+float state_tangent(state_t* modification, U16 frame, int tangent);
+
+typedef struct _filterState