Further restructuring and addition of new files.