added lazy injection for protected and public properties