diff --git a/src/feature/common/server-di.ts b/src/feature/common/server-di.ts
index bd28b80..af68905 100644
--- a/src/feature/common/server-di.ts
+++ b/src/feature/common/server-di.ts
@@ -1,11 +1,11 @@
-import getCustomerInvoiceDi from "@/feature/customer-invoice/data/module/customer-invoice-di";
-import { customerInvoiceModuleKey } from "@/feature/customer-invoice/invoice-module-key";
-import { customerKey } from "@/feature/customer/customer-key";
-import getCustomerDi from "@/feature/customer/data/module/customer-di";
+import getCustomerInvoiceDi from "@/feature/core/customer-invoice/data/module/customer-invoice-di";
+import { customerInvoiceModuleKey } from "@/feature/core/customer-invoice/invoice-module-key";
+import { customerKey } from "@/feature/core/customer/customer-key";
+import getCustomerDi from "@/feature/core/customer/data/module/customer-di";
 import { testModuleKey } from "@/feature/domain/test/test-module-key";
 import getTestModule from "@/feature/infra/test/module/test-module";
-import getInvoiceDi from "@/feature/invoice/data/module/invoice-di";
-import { invoiceModuleKey } from "@/feature/invoice/invoice-module-key";
+import getInvoiceDi from "@/feature/core/invoice/data/module/invoice-di";
+import { invoiceModuleKey } from "@/feature/core/invoice/invoice-module-key";
 import { DependencyContainer } from "tsyringe";
 
 export default function serverDi(module: string): DependencyContainer {
diff --git a/src/feature/customer-invoice/data/module/customer-invoice-di.ts b/src/feature/core/customer-invoice/data/module/customer-invoice-di.ts
similarity index 58%
rename from src/feature/customer-invoice/data/module/customer-invoice-di.ts
rename to src/feature/core/customer-invoice/data/module/customer-invoice-di.ts
index d1a93f1..76a7453 100644
--- a/src/feature/customer-invoice/data/module/customer-invoice-di.ts
+++ b/src/feature/core/customer-invoice/data/module/customer-invoice-di.ts
@@ -1,7 +1,7 @@
 import di from "@/bootstrap/di/init-di";
-import { customerInvoiceRepoKey } from "@/feature/customer-invoice/domain/i-repo/customer-invoice-repo";
-import fetchCustomerInvoicesUsecase from "@/feature/customer-invoice/domain/usecase/fetch-customer-invoices-usecase";
-import CustomerDbRepo from "@/feature/customer/data/repo/customer-db-repo";
+import { customerInvoiceRepoKey } from "@/feature/core/customer-invoice/domain/i-repo/customer-invoice-repo";
+import fetchCustomerInvoicesUsecase from "@/feature/core/customer-invoice/domain/usecase/fetch-customer-invoices-usecase";
+import CustomerDbRepo from "@/feature/core/customer/data/repo/customer-db-repo";
 import { DependencyContainer } from "tsyringe";
 
 export default function getCustomerInvoiceDi(): DependencyContainer {
diff --git a/src/feature/customer-invoice/data/repo/customer-invoice-db-repo.ts b/src/feature/core/customer-invoice/data/repo/customer-invoice-db-repo.ts
similarity index 89%
rename from src/feature/customer-invoice/data/repo/customer-invoice-db-repo.ts
rename to src/feature/core/customer-invoice/data/repo/customer-invoice-db-repo.ts
index bd52acc..45ec6ab 100644
--- a/src/feature/customer-invoice/data/repo/customer-invoice-db-repo.ts
+++ b/src/feature/core/customer-invoice/data/repo/customer-invoice-db-repo.ts
@@ -1,7 +1,7 @@
 import { formatCurrency } from "@/app/lib/utils";
 import { sql } from "@/bootstrap/db/db";
-import CustomerInvoice from "@/feature/customer-invoice/domain/entity/customer-invoice";
-import CustomerInvoiceRepo from "@/feature/customer-invoice/domain/i-repo/customer-invoice-repo";
+import CustomerInvoice from "@/feature/core/customer-invoice/domain/entity/customer-invoice";
+import CustomerInvoiceRepo from "@/feature/core/customer-invoice/domain/i-repo/customer-invoice-repo";
 import { connection } from "next/server";
 import postgres from "postgres";
 
diff --git a/src/feature/customer-invoice/domain/entity/customer-invoice.ts b/src/feature/core/customer-invoice/domain/entity/customer-invoice.ts
similarity index 100%
rename from src/feature/customer-invoice/domain/entity/customer-invoice.ts
rename to src/feature/core/customer-invoice/domain/entity/customer-invoice.ts
diff --git a/src/feature/core/customer-invoice/domain/i-repo/customer-invoice-repo.ts b/src/feature/core/customer-invoice/domain/i-repo/customer-invoice-repo.ts
new file mode 100644
index 0000000..0a8c993
--- /dev/null
+++ b/src/feature/core/customer-invoice/domain/i-repo/customer-invoice-repo.ts
@@ -0,0 +1,7 @@
+import CustomerInvoice from "@/feature/core/customer-invoice/domain/entity/customer-invoice"
+
+export default interface CustomerInvoiceRepo {
+    fetchList(): Promise<CustomerInvoice[]>
+}
+
+export const customerInvoiceRepoKey = "customerInvoiceRepoKey"
\ No newline at end of file
diff --git a/src/feature/customer-invoice/domain/usecase/fetch-customer-invoices-usecase.ts b/src/feature/core/customer-invoice/domain/usecase/fetch-customer-invoices-usecase.ts
similarity index 57%
rename from src/feature/customer-invoice/domain/usecase/fetch-customer-invoices-usecase.ts
rename to src/feature/core/customer-invoice/domain/usecase/fetch-customer-invoices-usecase.ts
index 1f16825..fd97f46 100644
--- a/src/feature/customer-invoice/domain/usecase/fetch-customer-invoices-usecase.ts
+++ b/src/feature/core/customer-invoice/domain/usecase/fetch-customer-invoices-usecase.ts
@@ -1,8 +1,8 @@
 "use server"
 import serverDi from "@/feature/common/server-di";
-import CustomerInvoice from "@/feature/customer-invoice/domain/entity/customer-invoice";
-import CustomerInvoiceRepo, { customerInvoiceRepoKey } from "@/feature/customer-invoice/domain/i-repo/customer-invoice-repo";
-import { customerInvoiceModuleKey } from "@/feature/customer-invoice/invoice-module-key";
+import CustomerInvoice from "@/feature/core/customer-invoice/domain/entity/customer-invoice";
+import CustomerInvoiceRepo, { customerInvoiceRepoKey } from "@/feature/core/customer-invoice/domain/i-repo/customer-invoice-repo";
+import { customerInvoiceModuleKey } from "@/feature/core/customer-invoice/invoice-module-key";
 
 export default function fetchCustomerInvoicesUsecase(): Promise<CustomerInvoice[]> {
     const repo = serverDi(customerInvoiceModuleKey).resolve<CustomerInvoiceRepo>(customerInvoiceRepoKey)
diff --git a/src/feature/customer-invoice/invoice-module-key.ts b/src/feature/core/customer-invoice/invoice-module-key.ts
similarity index 100%
rename from src/feature/customer-invoice/invoice-module-key.ts
rename to src/feature/core/customer-invoice/invoice-module-key.ts
diff --git a/src/feature/customer/customer-key.ts b/src/feature/core/customer/customer-key.ts
similarity index 100%
rename from src/feature/customer/customer-key.ts
rename to src/feature/core/customer/customer-key.ts
diff --git a/src/feature/customer/data/module/customer-di.ts b/src/feature/core/customer/data/module/customer-di.ts
similarity index 58%
rename from src/feature/customer/data/module/customer-di.ts
rename to src/feature/core/customer/data/module/customer-di.ts
index 4d153a8..1fa4398 100644
--- a/src/feature/customer/data/module/customer-di.ts
+++ b/src/feature/core/customer/data/module/customer-di.ts
@@ -1,7 +1,7 @@
 import di from "@/bootstrap/di/init-di";
-import CustomerDbRepo from "@/feature/customer/data/repo/customer-db-repo";
-import { customerRepoKey } from "@/feature/customer/domain/i-repo/customer-repo";
-import fetchCustomersUsecase from "@/feature/customer/domain/usecase/fetch-customers-usecase";
+import CustomerDbRepo from "@/feature/core/customer/data/repo/customer-db-repo";
+import { customerRepoKey } from "@/feature/core/customer/domain/i-repo/customer-repo";
+import fetchCustomersUsecase from "@/feature/core/customer/domain/usecase/fetch-customers-usecase";
 import { DependencyContainer } from "tsyringe";
 
 export default function getCustomerDi(): DependencyContainer {
diff --git a/src/feature/customer/data/repo/customer-db-repo.ts b/src/feature/core/customer/data/repo/customer-db-repo.ts
similarity index 94%
rename from src/feature/customer/data/repo/customer-db-repo.ts
rename to src/feature/core/customer/data/repo/customer-db-repo.ts
index f69239a..82c0494 100644
--- a/src/feature/customer/data/repo/customer-db-repo.ts
+++ b/src/feature/core/customer/data/repo/customer-db-repo.ts
@@ -1,7 +1,7 @@
 import { formatCurrency } from "@/app/lib/utils";
 import { sql } from "@/bootstrap/db/db";
-import Customer from "@/feature/customer/domain/entity/customer";
-import CustomerRepo from "@/feature/customer/domain/i-repo/customer-repo";
+import Customer from "@/feature/core/customer/domain/entity/customer";
+import CustomerRepo from "@/feature/core/customer/domain/i-repo/customer-repo";
 import { connection } from "next/server";
 import postgres from "postgres";
 
diff --git a/src/feature/customer/domain/entity/customer.ts b/src/feature/core/customer/domain/entity/customer.ts
similarity index 100%
rename from src/feature/customer/domain/entity/customer.ts
rename to src/feature/core/customer/domain/entity/customer.ts
diff --git a/src/feature/customer/domain/i-repo/customer-repo.ts b/src/feature/core/customer/domain/i-repo/customer-repo.ts
similarity index 53%
rename from src/feature/customer/domain/i-repo/customer-repo.ts
rename to src/feature/core/customer/domain/i-repo/customer-repo.ts
index 08e8226..d48fdde 100644
--- a/src/feature/customer/domain/i-repo/customer-repo.ts
+++ b/src/feature/core/customer/domain/i-repo/customer-repo.ts
@@ -1,4 +1,4 @@
-import Customer from "@/feature/customer/domain/entity/customer"
+import Customer from "@/feature/core/customer/domain/entity/customer"
 
 export default interface CustomerRepo {
     fetchList(query: string): Promise<Customer[]>
diff --git a/src/feature/customer/domain/usecase/fetch-customers-amount-usecase.ts b/src/feature/core/customer/domain/usecase/fetch-customers-amount-usecase.ts
similarity index 58%
rename from src/feature/customer/domain/usecase/fetch-customers-amount-usecase.ts
rename to src/feature/core/customer/domain/usecase/fetch-customers-amount-usecase.ts
index 608ae37..f90d5c3 100644
--- a/src/feature/customer/domain/usecase/fetch-customers-amount-usecase.ts
+++ b/src/feature/core/customer/domain/usecase/fetch-customers-amount-usecase.ts
@@ -1,6 +1,6 @@
 import serverDi from "@/feature/common/server-di";
-import { customerKey } from "@/feature/customer/customer-key";
-import CustomerRepo, { customerRepoKey } from "@/feature/customer/domain/i-repo/customer-repo";
+import { customerKey } from "@/feature/core/customer/customer-key";
+import CustomerRepo, { customerRepoKey } from "@/feature/core/customer/domain/i-repo/customer-repo";
 
 export default function fetchCustomersAmountUsecase(): Promise<number> {
     const repo = serverDi(customerKey).resolve<CustomerRepo>(customerRepoKey)
diff --git a/src/feature/customer/domain/usecase/fetch-customers-usecase.ts b/src/feature/core/customer/domain/usecase/fetch-customers-usecase.ts
similarity index 52%
rename from src/feature/customer/domain/usecase/fetch-customers-usecase.ts
rename to src/feature/core/customer/domain/usecase/fetch-customers-usecase.ts
index bf95239..60bd0c5 100644
--- a/src/feature/customer/domain/usecase/fetch-customers-usecase.ts
+++ b/src/feature/core/customer/domain/usecase/fetch-customers-usecase.ts
@@ -1,9 +1,9 @@
 "use server"
 
 import serverDi from "@/feature/common/server-di";
-import { customerKey } from "@/feature/customer/customer-key";
-import Customer from "@/feature/customer/domain/entity/customer";
-import CustomerRepo, { customerRepoKey } from "@/feature/customer/domain/i-repo/customer-repo";
+import { customerKey } from "@/feature/core/customer/customer-key";
+import Customer from "@/feature/core/customer/domain/entity/customer";
+import CustomerRepo, { customerRepoKey } from "@/feature/core/customer/domain/i-repo/customer-repo";
 
 export default function fetchCustomersUsecase(query: string): Promise<Customer[]> {
     const repo = serverDi(customerKey).resolve<CustomerRepo>(customerRepoKey)
diff --git a/src/feature/invoice/data/module/invoice-di.ts b/src/feature/core/invoice/data/module/invoice-di.ts
similarity index 62%
rename from src/feature/invoice/data/module/invoice-di.ts
rename to src/feature/core/invoice/data/module/invoice-di.ts
index c7c133a..1434954 100644
--- a/src/feature/invoice/data/module/invoice-di.ts
+++ b/src/feature/core/invoice/data/module/invoice-di.ts
@@ -1,6 +1,6 @@
 import di from "@/bootstrap/di/init-di";
-import invoiceDbRepo from "@/feature/invoice/data/repo/invoice-db-repo";
-import { invoiceRepoKey } from "@/feature/invoice/domain/i-repo/invoice-repo";
+import invoiceDbRepo from "@/feature/core/invoice/data/repo/invoice-db-repo";
+import { invoiceRepoKey } from "@/feature/core/invoice/domain/i-repo/invoice-repo";
 import { DependencyContainer } from "tsyringe";
 
 export default function getInvoiceDi(): DependencyContainer {
diff --git a/src/feature/invoice/data/repo/invoice-db-repo.ts b/src/feature/core/invoice/data/repo/invoice-db-repo.ts
similarity index 87%
rename from src/feature/invoice/data/repo/invoice-db-repo.ts
rename to src/feature/core/invoice/data/repo/invoice-db-repo.ts
index bc7c2a8..c9bf5e9 100644
--- a/src/feature/invoice/data/repo/invoice-db-repo.ts
+++ b/src/feature/core/invoice/data/repo/invoice-db-repo.ts
@@ -1,7 +1,7 @@
 import { formatCurrency } from "@/app/lib/utils";
 import { sql } from "@/bootstrap/db/db";
-import InvoiceRepo from "@/feature/invoice/domain/i-repo/invoice-repo";
-import InvoiceStatusSummary from "@/feature/invoice/domain/value-object/invoice-status";
+import InvoiceRepo from "@/feature/core/invoice/domain/i-repo/invoice-repo";
+import InvoiceStatusSummary from "@/feature/core/invoice/domain/value-object/invoice-status";
 import postgres from "postgres";
 
 type InvoiceSummaryDbResponse = {paid: string, pending: string}
diff --git a/src/feature/invoice/domain/i-repo/invoice-repo.ts b/src/feature/core/invoice/domain/i-repo/invoice-repo.ts
similarity index 52%
rename from src/feature/invoice/domain/i-repo/invoice-repo.ts
rename to src/feature/core/invoice/domain/i-repo/invoice-repo.ts
index 085421c..90bac8f 100644
--- a/src/feature/invoice/domain/i-repo/invoice-repo.ts
+++ b/src/feature/core/invoice/domain/i-repo/invoice-repo.ts
@@ -1,4 +1,4 @@
-import InvoiceStatusSummary from "@/feature/invoice/domain/value-object/invoice-status"
+import InvoiceStatusSummary from "@/feature/core/invoice/domain/value-object/invoice-status"
 
 export default interface InvoiceRepo {
     fetchAllInvoicesAmount(): Promise<number>
diff --git a/src/feature/invoice/domain/usecase/fetch-all-invoices-amount-usecase.ts b/src/feature/core/invoice/domain/usecase/fetch-all-invoices-amount-usecase.ts
similarity index 59%
rename from src/feature/invoice/domain/usecase/fetch-all-invoices-amount-usecase.ts
rename to src/feature/core/invoice/domain/usecase/fetch-all-invoices-amount-usecase.ts
index 1922f81..93e2deb 100644
--- a/src/feature/invoice/domain/usecase/fetch-all-invoices-amount-usecase.ts
+++ b/src/feature/core/invoice/domain/usecase/fetch-all-invoices-amount-usecase.ts
@@ -1,7 +1,7 @@
 "use server"
 import serverDi from "@/feature/common/server-di";
-import InvoiceRepo, { invoiceRepoKey } from "@/feature/invoice/domain/i-repo/invoice-repo";
-import { invoiceModuleKey } from "@/feature/invoice/invoice-module-key";
+import InvoiceRepo, { invoiceRepoKey } from "@/feature/core/invoice/domain/i-repo/invoice-repo";
+import { invoiceModuleKey } from "@/feature/core/invoice/invoice-module-key";
 
 export default function fetchAllInvoicesAmountUsecase(): Promise<number> {
     const repo = serverDi(invoiceModuleKey).resolve<InvoiceRepo>(invoiceRepoKey)
diff --git a/src/feature/core/invoice/domain/usecase/fetch-invoices-status-summary.ts b/src/feature/core/invoice/domain/usecase/fetch-invoices-status-summary.ts
new file mode 100644
index 0000000..07c76a8
--- /dev/null
+++ b/src/feature/core/invoice/domain/usecase/fetch-invoices-status-summary.ts
@@ -0,0 +1,9 @@
+import serverDi from "@/feature/common/server-di";
+import InvoiceRepo, { invoiceRepoKey } from "@/feature/core/invoice/domain/i-repo/invoice-repo";
+import InvoiceStatusSummary from "@/feature/core/invoice/domain/value-object/invoice-status";
+import { invoiceModuleKey } from "@/feature/core/invoice/invoice-module-key";
+
+export default function fetchInvoicesStatusSummary(): Promise<InvoiceStatusSummary> {
+    const repo = serverDi(invoiceModuleKey).resolve<InvoiceRepo>(invoiceRepoKey)
+    return repo.fetchInvoicesStatusSummary()
+}
\ No newline at end of file
diff --git a/src/feature/invoice/domain/value-object/invoice-status.ts b/src/feature/core/invoice/domain/value-object/invoice-status.ts
similarity index 100%
rename from src/feature/invoice/domain/value-object/invoice-status.ts
rename to src/feature/core/invoice/domain/value-object/invoice-status.ts
diff --git a/src/feature/invoice/invoice-module-key.ts b/src/feature/core/invoice/invoice-module-key.ts
similarity index 100%
rename from src/feature/invoice/invoice-module-key.ts
rename to src/feature/core/invoice/invoice-module-key.ts
diff --git a/src/feature/customer-invoice/domain/i-repo/customer-invoice-repo.ts b/src/feature/customer-invoice/domain/i-repo/customer-invoice-repo.ts
deleted file mode 100644
index f3f5eba..0000000
--- a/src/feature/customer-invoice/domain/i-repo/customer-invoice-repo.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import CustomerInvoice from "@/feature/customer-invoice/domain/entity/customer-invoice"
-
-export default interface CustomerInvoiceRepo {
-    fetchList(): Promise<CustomerInvoice[]>
-}
-
-export const customerInvoiceRepoKey = "customerInvoiceRepoKey"
\ No newline at end of file
diff --git a/src/feature/invoice/domain/usecase/fetch-invoices-status-summary.ts b/src/feature/invoice/domain/usecase/fetch-invoices-status-summary.ts
deleted file mode 100644
index f35a4dc..0000000
--- a/src/feature/invoice/domain/usecase/fetch-invoices-status-summary.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import serverDi from "@/feature/common/server-di";
-import InvoiceRepo, { invoiceRepoKey } from "@/feature/invoice/domain/i-repo/invoice-repo";
-import InvoiceStatusSummary from "@/feature/invoice/domain/value-object/invoice-status";
-import { invoiceModuleKey } from "@/feature/invoice/invoice-module-key";
-
-export default function fetchInvoicesStatusSummary(): Promise<InvoiceStatusSummary> {
-    const repo = serverDi(invoiceModuleKey).resolve<InvoiceRepo>(invoiceRepoKey)
-    return repo.fetchInvoicesStatusSummary()
-}
\ No newline at end of file
diff --git a/src/test/common/fake-factory/customer/customer-fake-factory.ts b/src/test/common/fake-factory/customer/customer-fake-factory.ts
index cf7a53c..319c223 100644
--- a/src/test/common/fake-factory/customer/customer-fake-factory.ts
+++ b/src/test/common/fake-factory/customer/customer-fake-factory.ts
@@ -1,4 +1,4 @@
-import Customer from "@/feature/customer/domain/entity/customer";
+import Customer from "@/feature/core/customer/domain/entity/customer";
 import { faker } from "@faker-js/faker";
 
 export default class CustomerFakeFactory {
diff --git a/src/test/unit/feature/customer/domain/usecase/fetch-customers-usecase.test.ts b/src/test/unit/feature/customer/domain/usecase/fetch-customers-usecase.test.ts
index 7178ac2..9ce5ccd 100644
--- a/src/test/unit/feature/customer/domain/usecase/fetch-customers-usecase.test.ts
+++ b/src/test/unit/feature/customer/domain/usecase/fetch-customers-usecase.test.ts
@@ -1,9 +1,9 @@
-import CustomerRepo, { customerRepoKey } from "@/feature/customer/domain/i-repo/customer-repo";
+import CustomerRepo, { customerRepoKey } from "@/feature/core/customer/domain/i-repo/customer-repo";
 import { getMock } from "@/test/common/mock/mock-factory";
 import { describe } from "vitest";
 import { faker } from "@faker-js/faker";
 import CustomerFakeFactory from "@/test/common/fake-factory/customer/customer-fake-factory";
-import fetchCustomersUsecase from "@/feature/customer/domain/usecase/fetch-customers-usecase";
+import fetchCustomersUsecase from "@/feature/core/customer/domain/usecase/fetch-customers-usecase";
 import mockDi from "@/test/common/mock/mock-di";
 /* -------------------------------------------------------------------------- */
 /*                                   Faking                                   */