Separate clientListener.js