Add new TreeNode type for demo purposes. Expose animation life-cycles to sub-classes.