Refactoring wip

Signed-off-by: Carlo Caione <carlo@caione.org>