adding dependecy injection feature