don't use size()>0