Pull out prefix/suffix support and add support for recursive children