it's used always on setValue