upadates and fixes