Constructor-based DI