Split large method up, support recursion through subdirs