more module separation, primitive player ViewRange