dependencies declartion pattern