abstraction - puzzle with a flag