Only goes 1 level deep, and handles empty files