many updates and improvements