some refactoring and begin implement of NewGame