better use `switch (arg)`