give modules the ability to log what they're doing. the user can print these information by using option --verbose
* Blueprints in grey have been implemented.