revised to strict list sum