tried to fix some race conditions. not adding duplicate candidates. needs more checks though