This pattern cannot be used everywhere. There are other ways to do this, for instance using flags.