better contribution counting