able to recursively read files