Update: custom constructor, better DI