add phpunit in require-dev
set up functional tests and move peristence constraints of participants to an event listener