Importer refactor

Merge of first round of importer refactorings with @motasem-salem work effectively merging #140 and #149.
Since the import process is atomic, is there any reason for this condition to exist?