used DI and IoC for serving strategy