sub should return