some modifications to use arraycontroller to populate treecontroller instead