Rename register method to factory
Extract DSL class
Change implementation to non singleton objects
Change factory to reg
Remove instance_eval in dsl style to avoid losing the execution context
Rename factory to config
Pass factory as keyword argument
Rename method add_factory to add_entry
Add Config and Entry class