refactor gameclient