some horrible hacking on hierarchical
merged