it is necessary since client for sure will forget to set the flag (and it should not take care of it). We can make impl class a friend of application data