end first refactor, add drive, connector and socket classes