made lots of changes and added the needed drivers