Thanks guys... Because i need my text to be somewhat dynamic I have done a RefreshText() method which will update the Nodes Text property to what it needs to be. I hoped there was a more elegant solution but it appears not. Just means if I add a node I have to go down the tree and refresh all the nodes.. It seems to work. Thanks for your help I'm still trying to get my head around virtual override new and derivation of classes and stuff.