Yes, use a treeView or a visor.
PS However mayas not so much about total freedom instead the best GUI design is not to build a GUI at all. I mean in systems where a GUI is easy to build does not exactly magically come up with the best possible GUI. Instead its usually the guys who have the lousiest GUI tools that end up doing the best GUI, because they know that inorder to get it done they must minimize, minimize, minimize. And the best possible GUI is truly no GUI at all.
People say they want a GUI because thats what they use, but they miss the point. They really don't WANT to use a GUI they want the thing done. And if you can do it without input all the better for everybody involved. So if you can read the users mind please do, better yet do something they want but cant think of (yet).
Its just that developpers are the problem since WE want options, users don't. Hence developpers are the worst possible designers of the GUI for them.