using File.join instead of concatenation
proper merging for name hashes
implemented subdirectory handling, exchanging Dir.glob for Find.find
minor