give full prototype