added ComponentTree and ComponentTreeItem classes