implement CSer