add on(), recreate canvas every time, fix issue with same AST but different values.