Numerous changes and improvements