cleaned up driver