RIntroduce dependency management to avoid usage of singletons and class methods

Signed-off-by: Damien Le Berrigaud <damien@itsdamo.com>