modified swim listener