create content tree
create content tree and read files in separate steps. generate content from content tree
split file content generation into it's own method
move path generation to file info method
split some stuff into other files