default to 0 datalen