added canFlowOff()