initial commit and improvements