Factorize some more code

Signed-off-by: Francis Galiegue <fgaliegue@gmail.com>