lots of babelgum-manipulation functionality