some changes and improvements...