demo for dependency injection