removed source_file class, turned it into a collection of string processing functions