updated following comments mostly better