Added IDriverModel and Refactored some files