dependency injection sample