Refactorise code.

Signed-off-by: Hugues Peccatte <hugues.peccatte@gmail.com>