add some comments
two abstain functions