fix possible duplicating of listener