game shell using IoC