C2: new version without switch