Namespaces and function names in a later commit.
Uses the path through the hiccup as the expansion path. This means that if the hiccup layout changes, the wrong item can be expanded. However it is still better than the alternative, and can be improved in the future. Fixes #105