add primitive level polarity. fixes #2