feature(pipe) rm duplicate listener
feature(pipe) on -> once