Frank Habineza is an environmentalist running to become Rwanda's president for the first time after an eight-year struggle to register his party and obtain a spot on the ballot paper.
The 40-year-old leader of the Democratic Green Party has faced death threats and seen supporters beaten up, imprisoned and forced into exile during his bid to enter Rwanda's tightly controlled political space.
"It has been a very difficult journey, and also a very dangerous journey," he told AFP in an interview in his stark office in the capital Kigali, where a bodyguard keeps watch on the balcony.
Born to a Hutu father and a Tutsi mother in exile in Uganda, he returned to Rwanda to study public administration.
He also became an active member of civil society, campaigning for environmental protection.
Habineza was a member of the ruling Rwandan Patriotic Front (RPF), but defected to join opposition politics in 2009 to introduce an alternative to the iron-fisted party.
President Paul Kagame has come under fire for severely restricting free speech and muzzling critical opposition parties.
Aside from Habineza's Green Party, all registered opposition parties routinely back Kagame.
"When we started a party we were physically beaten at some of our meetings by people who had guns, people were detained, imprisoned...others went into exile," said Habineza.
His party was blocked from registering before the 2010 polls, and shortly before the election the Green Party's vice president Andre Rwisereka's body was found nearly decapitated.
Habineza, who said he had also received death threats, decided to flee to Sweden a month later where his family was eventually granted citizenship.
In 2012 he decided to return to Rwanda. He said leaving his wife and children — including a one-year-old baby — was "the hardest thing I have ever done".
"It was a big risk to come back because some of my people were in prison...the party was dying," he said.
The party was finally able to register in 2013, just a month before parliamentary elections, in which Habineza chose not to participate due to the lack of time to prepare.
In 2015 he was the only one to contest a constitutional reform allowing Kagame to seek a third term in office.
However a referendum went ahead, with 98 per cent of the country voting in favour of the change.
Habineza gave up his Swedish citizenship in order to run in the 2017 election and has continued to face hurdles at every turn.
In 2016 he was evicted from his office and home without notice.
Mounting a campaign has also been a battle.
As per electoral law he only had one week to raise funds after being confirmed as a candidate, and three weeks to campaign.
Neither Habineza nor little-known third candidate Philippe Mpayimana are expected to unseat Kagame, who himself declared "the election is over" after the referendum.
Several observers see the opposition candidates as a front to appease Western donors and give the impression that democracy is alive and well in Rwanda.
Habineza is painfully aware of this view, which he rejects.
"We have struggled for this space...we have made a lot of sacrifices to be here, even blood sacrifices. It is not a favour, it is not something small," he said.
Habineza says he wants to bring true democracy to Rwanda and allow for respect of human rights and freedom of expression.
However he is criticised for not having clear alternative ideas to what Kagame offers, and of censoring himself in his opposition to the president.
"They call it political maturity," he said.
"If you know that every time you do a demonstration you'll be put in prison, then you stop doing that. Or if you know you are doing something that will lead you to be killed, you know you don't achieve much when you are in the grave so you change some strategies."