Participation API and some code cleaning