Many updates and improvements