Feature/cli tools rebased

This PR is based on the work done in #200 and aims at cleaning up the factory mess that currently haunts the module

Handles #137 and #76