contract drivers have been implemented; some bugs were fixed