I think it's not OK; why do you also handle TreeNode, ArrayCollection?