new version, better automated, with puID