many tweaks and improvements, thank you zack morris for great questions