diff --git a/package/gluon-config-mode/Makefile b/package/gluon-config-mode/Makefile
index dfd252eff0226b73a6a693372fbea910cd79a03c..4d52bd29b928cb371a68d0ac4b3bf0c038b38638 100644
--- a/package/gluon-config-mode/Makefile
+++ b/package/gluon-config-mode/Makefile
@@ -15,7 +15,7 @@ define Package/gluon-config-mode
   SECTION:=gluon
   CATEGORY:=Gluon
   TITLE:=Luci based config mode for user friendly setup of new meshnodes
-  DEPENDS:=+gluon-core +gluon-lock-password +gluon-location +gluon-simple-tc +gluon-luci-theme +uhttpd +dnsmasq +luci-mod-admin-core +ip
+  DEPENDS:=+gluon-luci-core +gluon-lock-password +gluon-location +gluon-simple-tc +uhttpd +dnsmasq +ip
 endef
 
 define Package/gluon-config-mode/description
diff --git a/package/gluon-luci-admin/Makefile b/package/gluon-luci-admin/Makefile
index d9d963814a264dfd33f7c9092352591770f4139e..16dc0cbfa3d2f468745f8607edf3725789a138ee 100644
--- a/package/gluon-luci-admin/Makefile
+++ b/package/gluon-luci-admin/Makefile
@@ -15,7 +15,7 @@ define Package/gluon-luci-admin
   SECTION:=gluon
   CATEGORY:=Gluon
   TITLE:=Luci based simple administration interface for mesh nodes
-  DEPENDS:=+gluon-core +gluon-luci-theme +luci-mod-admin-core
+  DEPENDS:=+gluon-luci-core +gluon-config-mode
 endef
 
 define Package/gluon-luci-admin/description
diff --git a/package/gluon-luci-core/Makefile b/package/gluon-luci-core/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..2cee38618f7e75600e346d4b451064919af2ac49
--- /dev/null
+++ b/package/gluon-luci-core/Makefile
@@ -0,0 +1,39 @@
+# Copyright (C) 2013 Nils Schneider <nils at nilsschneider.net>
+# This is free software, licensed under the Apache 2.0 license.
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=gluon-luci-core
+PKG_VERSION:=0.1
+PKG_RELEASE:=1
+
+PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/gluon-luci-core
+  SECTION:=gluon
+  CATEGORY:=Gluon
+  TITLE:=Luci code shared by configmode and expertmode
+  DEPENDS:=+gluon-core +gluon-luci-theme +luci-lib-web
+endef
+
+define Package/gluon-luci-core/description
+	Luci code shared by various gluon packages
+endef
+
+define Build/Prepare
+	mkdir -p $(PKG_BUILD_DIR)
+endef
+
+define Build/Configure
+endef
+
+define Build/Compile
+endef
+
+define Package/gluon-luci-core/install
+	$(CP) ./files/* $(1)/
+endef
+
+$(eval $(call BuildPackage,gluon-luci-core))
diff --git a/package/gluon-luci-core/files/usr/lib/lua/luci/view/error404.htm b/package/gluon-luci-core/files/usr/lib/lua/luci/view/error404.htm
new file mode 100644
index 0000000000000000000000000000000000000000..813604d12cac610dff1a40d2666def101905e2d0
--- /dev/null
+++ b/package/gluon-luci-core/files/usr/lib/lua/luci/view/error404.htm
@@ -0,0 +1,19 @@
+<%#
+LuCI - Lua Configuration Interface
+Copyright 2008 Steven Barth <steven@midlink.org>
+Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net>
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+	http://www.apache.org/licenses/LICENSE-2.0
+
+$Id$
+
+-%>
+<%+header%>
+<h2><a id="content" name="content">404 <%:Not Found%></a></h2>
+<p><%:Sorry, the object you requested was not found.%></p>
+<tt><%:Unable to dispatch%>: <%=luci.http.request.env.PATH_INFO%></tt>
+<%+footer%>
diff --git a/package/gluon-luci-core/files/usr/lib/lua/luci/view/error500.htm b/package/gluon-luci-core/files/usr/lib/lua/luci/view/error500.htm
new file mode 100644
index 0000000000000000000000000000000000000000..14ba0410a4fc42dc4eebadc9aa6030096cb8fa9f
--- /dev/null
+++ b/package/gluon-luci-core/files/usr/lib/lua/luci/view/error500.htm
@@ -0,0 +1,19 @@
+<%#
+LuCI - Lua Configuration Interface
+Copyright 2008 Steven Barth <steven@midlink.org>
+Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net>
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+	http://www.apache.org/licenses/LICENSE-2.0
+
+$Id$
+
+-%>
+<%+header%>
+<h2><a id="content" name="content">500 <%:Internal Server Error%></a></h2>
+<p><%:Sorry, the server encountered an unexpected error.%></p>
+<pre class="error500"><%=message%></pre>
+<%+footer%>
diff --git a/package/gluon-luci-core/files/usr/lib/lua/luci/view/footer.htm b/package/gluon-luci-core/files/usr/lib/lua/luci/view/footer.htm
new file mode 100644
index 0000000000000000000000000000000000000000..6c6d214210ea72cb39677cae18089cdf5049a775
--- /dev/null
+++ b/package/gluon-luci-core/files/usr/lib/lua/luci/view/footer.htm
@@ -0,0 +1,15 @@
+<%#
+LuCI - Lua Configuration Interface
+Copyright 2008 Steven Barth <steven@midlink.org>
+Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net>
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+	http://www.apache.org/licenses/LICENSE-2.0
+
+$Id$
+
+-%>
+<% include("themes/" .. theme .. "/footer") %>
\ No newline at end of file
diff --git a/package/gluon-luci-core/files/usr/lib/lua/luci/view/header.htm b/package/gluon-luci-core/files/usr/lib/lua/luci/view/header.htm
new file mode 100644
index 0000000000000000000000000000000000000000..77018b117336b8136786a315a3f473c37140fdc1
--- /dev/null
+++ b/package/gluon-luci-core/files/usr/lib/lua/luci/view/header.htm
@@ -0,0 +1,21 @@
+<%#
+LuCI - Lua Configuration Interface
+Copyright 2008 Steven Barth <steven@midlink.org>
+Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net>
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+	http://www.apache.org/licenses/LICENSE-2.0
+
+$Id$
+
+-%>
+
+<%
+	if not luci.dispatcher.context.template_header_sent then
+		include("themes/" .. theme .. "/header")
+		luci.dispatcher.context.template_header_sent = true
+	end
+%>
diff --git a/package/gluon-luci-core/files/usr/lib/lua/luci/view/sysauth.htm b/package/gluon-luci-core/files/usr/lib/lua/luci/view/sysauth.htm
new file mode 100644
index 0000000000000000000000000000000000000000..8c4b19c7c8884ad6188f1744953e5341ec46df3d
--- /dev/null
+++ b/package/gluon-luci-core/files/usr/lib/lua/luci/view/sysauth.htm
@@ -0,0 +1,54 @@
+<%#
+LuCI - Lua Configuration Interface
+Copyright 2008 Steven Barth <steven@midlink.org>
+Copyright 2008-2012 Jo-Philipp Wich <xm@subsignal.org>
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+	http://www.apache.org/licenses/LICENSE-2.0
+
+$Id$
+
+-%>
+
+<%+header%>
+
+<form method="post" action="<%=pcdata(luci.http.getenv("REQUEST_URI"))%>">
+	<div class="cbi-map">
+		<h2><a id="content" name="content"><%:Authorization Required%></a></h2>
+		<div class="cbi-map-descr">
+			<%:Please enter your username and password.%>
+			<%- if fuser then %>
+			<div class="error"><%:Invalid username and/or password! Please try again.%></div>
+			<br />
+			<% end -%>
+		</div>
+		<fieldset class="cbi-section"><fieldset class="cbi-section-node">
+			<div class="cbi-value">
+				<label class="cbi-value-title"><%:Username%></label>
+				<div class="cbi-value-field">
+					<input class="cbi-input-user" type="text" name="username" value="<%=duser%>" />
+				</div>
+			</div>
+			<div class="cbi-value cbi-value-last">
+				<label class="cbi-value-title"><%:Password%></label>
+				<div class="cbi-value-field">
+					<input id="focus_password" class="cbi-input-password" type="password" name="password" />
+				</div>
+			</div>
+		</fieldset></fieldset>
+	</div>
+
+	<div>
+		<input type="submit" value="<%:Login%>" class="cbi-button cbi-button-apply" />
+		<input type="reset" value="<%:Reset%>" class="cbi-button cbi-button-reset" />
+	</div>
+</form>
+<script type="text/javascript">//<![CDATA[
+	var input = document.getElementById('focus_password');
+	if (input)
+		input.focus();
+//]]></script>
+<%+footer%>