diff --git a/drcr/plugins.py b/drcr/plugins.py
new file mode 100644
index 0000000..a034f17
--- /dev/null
+++ b/drcr/plugins.py
@@ -0,0 +1,28 @@
+# DrCr: Web-based double-entry bookkeeping framework
+# Copyright (C) 2022–2023 Lee Yingtong Li (RunasSudo)
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+from .config import PLUGINS
+
+import importlib
+
+advanced_reports = [] # list of tuplet (url, label)
+account_kinds = [] # list of tuplet (id, label)
+transaction_providers = [] # list of callable
+
+def init_plugins():
+ for plugin in PLUGINS:
+ module = importlib.import_module(plugin)
+ module.plugin_init()
diff --git a/drcr/templates/chart_of_accounts.html b/drcr/templates/chart_of_accounts.html
index 9b0c97a..4f350aa 100644
--- a/drcr/templates/chart_of_accounts.html
+++ b/drcr/templates/chart_of_accounts.html
@@ -30,6 +30,9 @@
+ {% for account_kind in account_kinds %}
+
+ {% endfor %}