feat: add data length check