addFlowListener instead of setXXX