recursively compile file names properly

added support for namespaces too! :D