diff --git a/src/main/java/org/codelibs/fess/MultiModalConstants.java b/src/main/java/org/codelibs/fess/multimodal/MultiModalConstants.java
similarity index 95%
rename from src/main/java/org/codelibs/fess/MultiModalConstants.java
rename to src/main/java/org/codelibs/fess/multimodal/MultiModalConstants.java
index d0ff788..60893ff 100644
--- a/src/main/java/org/codelibs/fess/MultiModalConstants.java
+++ b/src/main/java/org/codelibs/fess/multimodal/MultiModalConstants.java
@@ -13,7 +13,7 @@
* either express or implied. See the License for the specific language
* governing permissions and limitations under the License.
*/
-package org.codelibs.fess;
+package org.codelibs.fess.multimodal;
public class MultiModalConstants {
public static final String X_FESS_EMBEDDING = "X-FESS-Embedding";
diff --git a/src/main/java/org/codelibs/fess/client/CasClient.java b/src/main/java/org/codelibs/fess/multimodal/client/CasClient.java
similarity index 98%
rename from src/main/java/org/codelibs/fess/client/CasClient.java
rename to src/main/java/org/codelibs/fess/multimodal/client/CasClient.java
index af3c669..bdfa7f2 100644
--- a/src/main/java/org/codelibs/fess/client/CasClient.java
+++ b/src/main/java/org/codelibs/fess/multimodal/client/CasClient.java
@@ -13,7 +13,7 @@
* either express or implied. See the License for the specific language
* governing permissions and limitations under the License.
*/
-package org.codelibs.fess.client;
+package org.codelibs.fess.multimodal.client;
import java.awt.Image;
import java.awt.Rectangle;
@@ -39,7 +39,7 @@
import org.codelibs.curl.Curl;
import org.codelibs.curl.CurlException;
import org.codelibs.curl.CurlResponse;
-import org.codelibs.fess.exception.CasAccessException;
+import org.codelibs.fess.multimodal.exception.CasAccessException;
import org.opensearch.common.xcontent.LoggingDeprecationHandler;
import org.opensearch.common.xcontent.json.JsonXContent;
import org.opensearch.core.xcontent.NamedXContentRegistry;
diff --git a/src/main/java/org/codelibs/fess/crawler/extractor/CasExtractor.java b/src/main/java/org/codelibs/fess/multimodal/crawler/extractor/CasExtractor.java
similarity index 86%
rename from src/main/java/org/codelibs/fess/crawler/extractor/CasExtractor.java
rename to src/main/java/org/codelibs/fess/multimodal/crawler/extractor/CasExtractor.java
index 0f9c445..d0dcb50 100644
--- a/src/main/java/org/codelibs/fess/crawler/extractor/CasExtractor.java
+++ b/src/main/java/org/codelibs/fess/multimodal/crawler/extractor/CasExtractor.java
@@ -13,7 +13,7 @@
* either express or implied. See the License for the specific language
* governing permissions and limitations under the License.
*/
-package org.codelibs.fess.crawler.extractor;
+package org.codelibs.fess.multimodal.crawler.extractor;
import java.io.InputStream;
import java.util.Map;
@@ -22,12 +22,12 @@
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
-import org.codelibs.fess.MultiModalConstants;
-import org.codelibs.fess.client.CasClient;
import org.codelibs.fess.crawler.entity.ExtractData;
import org.codelibs.fess.crawler.extractor.impl.TikaExtractor;
-import org.codelibs.fess.ingest.EmbeddingIngester;
-import org.codelibs.fess.util.EmbeddingUtil;
+import org.codelibs.fess.multimodal.MultiModalConstants;
+import org.codelibs.fess.multimodal.client.CasClient;
+import org.codelibs.fess.multimodal.ingest.EmbeddingIngester;
+import org.codelibs.fess.multimodal.util.EmbeddingUtil;
public class CasExtractor extends TikaExtractor {
diff --git a/src/main/java/org/codelibs/fess/exception/CasAccessException.java b/src/main/java/org/codelibs/fess/multimodal/exception/CasAccessException.java
similarity index 95%
rename from src/main/java/org/codelibs/fess/exception/CasAccessException.java
rename to src/main/java/org/codelibs/fess/multimodal/exception/CasAccessException.java
index 897d33a..89168a8 100644
--- a/src/main/java/org/codelibs/fess/exception/CasAccessException.java
+++ b/src/main/java/org/codelibs/fess/multimodal/exception/CasAccessException.java
@@ -13,7 +13,7 @@
* either express or implied. See the License for the specific language
* governing permissions and limitations under the License.
*/
-package org.codelibs.fess.exception;
+package org.codelibs.fess.multimodal.exception;
import org.codelibs.fess.crawler.exception.CrawlerSystemException;
diff --git a/src/main/java/org/codelibs/fess/ingest/EmbeddingIngester.java b/src/main/java/org/codelibs/fess/multimodal/ingest/EmbeddingIngester.java
similarity index 91%
rename from src/main/java/org/codelibs/fess/ingest/EmbeddingIngester.java
rename to src/main/java/org/codelibs/fess/multimodal/ingest/EmbeddingIngester.java
index e799531..75c12cb 100644
--- a/src/main/java/org/codelibs/fess/ingest/EmbeddingIngester.java
+++ b/src/main/java/org/codelibs/fess/multimodal/ingest/EmbeddingIngester.java
@@ -13,7 +13,7 @@
* either express or implied. See the License for the specific language
* governing permissions and limitations under the License.
*/
-package org.codelibs.fess.ingest;
+package org.codelibs.fess.multimodal.ingest;
import java.util.Map;
@@ -23,9 +23,10 @@
import org.apache.logging.log4j.Logger;
import org.codelibs.core.lang.StringUtil;
import org.codelibs.fess.Constants;
-import org.codelibs.fess.MultiModalConstants;
+import org.codelibs.fess.ingest.Ingester;
+import org.codelibs.fess.multimodal.MultiModalConstants;
+import org.codelibs.fess.multimodal.util.EmbeddingUtil;
import org.codelibs.fess.util.ComponentUtil;
-import org.codelibs.fess.util.EmbeddingUtil;
public class EmbeddingIngester extends Ingester {
private static final Logger logger = LogManager.getLogger(EmbeddingIngester.class);
diff --git a/src/main/java/org/codelibs/fess/util/EmbeddingUtil.java b/src/main/java/org/codelibs/fess/multimodal/util/EmbeddingUtil.java
similarity index 97%
rename from src/main/java/org/codelibs/fess/util/EmbeddingUtil.java
rename to src/main/java/org/codelibs/fess/multimodal/util/EmbeddingUtil.java
index f4e1c12..5c23c3f 100644
--- a/src/main/java/org/codelibs/fess/util/EmbeddingUtil.java
+++ b/src/main/java/org/codelibs/fess/multimodal/util/EmbeddingUtil.java
@@ -13,7 +13,7 @@
* either express or implied. See the License for the specific language
* governing permissions and limitations under the License.
*/
-package org.codelibs.fess.util;
+package org.codelibs.fess.multimodal.util;
import java.nio.ByteBuffer;
import java.util.Base64;
diff --git a/src/main/resources/app++.xml b/src/main/resources/app++.xml
index ac3da29..f36e101 100644
--- a/src/main/resources/app++.xml
+++ b/src/main/resources/app++.xml
@@ -3,6 +3,6 @@
"http://dbflute.org/meta/lastadi10.dtd">
+ class="org.codelibs.fess.multimodal.client.CasClient">
diff --git a/src/main/resources/crawler/extractor++.xml b/src/main/resources/crawler/extractor++.xml
index 61f0228..b6cd598 100644
--- a/src/main/resources/crawler/extractor++.xml
+++ b/src/main/resources/crawler/extractor++.xml
@@ -5,7 +5,7 @@