HelloWorld decoupled with a factory