Add private constructor for DI