I have an accounting application that uses three data files. These files contain a file header and file footer with data records grouped by sub-headers and sub-footers. The first is the Invoice File which comes from our business and contains invoices to be paid. The second is the Payment File which comes from the bank and contains payment transactions. The application processes these two files and generates a Paid File which contains invoices which have been paid. I want to create a converter for development and unit testing but am new to C# and OOP so I'm feeling a bit overwhelmed. Are there any examples like this out there? I am thinking I should create an abstract class for the files and then make inherited classes for each of the three file types, each with their own parsing and validating methods and a converter with an overloaded convert method that depends on the file types being passed to it. The converter module seems simple enough but I am struggling with implementing the file data and the parsing and validating methods. I am considering some sort of hierarchal tree structure but am I making things far too complicated?