Refactored drive specific code into it's own class.