candidates generation