rather verbose solution to positive + negative task