abstracted some of the flag classes