put more intelligence in the subs package, simplifying external usage of it