small library for factories with decorators and dependency injection