added dependecy injection