How about more simple solution: producing a vector of atoms (very well defined!) And the user can do with that what he wants later, build hierarchies, assemblies or whatever...