diff --git a/src/store/categories/actions.js b/src/store/categories/actions.js
new file mode 100644
index 0000000000000000000000000000000000000000..4787a5f044cc064c86477d3503bb20dbc75c6146
--- /dev/null
+++ b/src/store/categories/actions.js
@@ -0,0 +1,4 @@
+/*
+export function someAction (context) {
+}
+*/
diff --git a/src/store/categories/getters.js b/src/store/categories/getters.js
new file mode 100644
index 0000000000000000000000000000000000000000..cc054a3aebb29873fee7c2375e66a8947d291665
--- /dev/null
+++ b/src/store/categories/getters.js
@@ -0,0 +1,4 @@
+/*
+export function someGetter (state) {
+}
+*/
diff --git a/src/store/module-example/index.js b/src/store/categories/index.js
similarity index 91%
rename from src/store/module-example/index.js
rename to src/store/categories/index.js
index babab8ec520e34a51ac8ece7387024dd41ba4079..b41a219b92f9c48f8b7c6f6dd5de01a21f954851 100644
--- a/src/store/module-example/index.js
+++ b/src/store/categories/index.js
@@ -5,8 +5,8 @@ import * as actions from './actions'
 
 export default {
   namespaced: true,
+  state,
   getters,
   mutations,
-  actions,
-  state
+  actions
 }
diff --git a/src/store/categories/mutations.js b/src/store/categories/mutations.js
new file mode 100644
index 0000000000000000000000000000000000000000..63131e23c8af12f69974dbdda82f5e1edac53e4c
--- /dev/null
+++ b/src/store/categories/mutations.js
@@ -0,0 +1,4 @@
+/*
+export function someMutation (state) {
+}
+*/
diff --git a/src/store/module-example/state.js b/src/store/categories/state.js
similarity index 100%
rename from src/store/module-example/state.js
rename to src/store/categories/state.js
diff --git a/src/store/collections/actions.js b/src/store/collections/actions.js
new file mode 100644
index 0000000000000000000000000000000000000000..4787a5f044cc064c86477d3503bb20dbc75c6146
--- /dev/null
+++ b/src/store/collections/actions.js
@@ -0,0 +1,4 @@
+/*
+export function someAction (context) {
+}
+*/
diff --git a/src/store/collections/getters.js b/src/store/collections/getters.js
new file mode 100644
index 0000000000000000000000000000000000000000..cc054a3aebb29873fee7c2375e66a8947d291665
--- /dev/null
+++ b/src/store/collections/getters.js
@@ -0,0 +1,4 @@
+/*
+export function someGetter (state) {
+}
+*/
diff --git a/src/store/collections/index.js b/src/store/collections/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..b41a219b92f9c48f8b7c6f6dd5de01a21f954851
--- /dev/null
+++ b/src/store/collections/index.js
@@ -0,0 +1,12 @@
+import state from './state'
+import * as getters from './getters'
+import * as mutations from './mutations'
+import * as actions from './actions'
+
+export default {
+  namespaced: true,
+  state,
+  getters,
+  mutations,
+  actions
+}
diff --git a/src/store/collections/mutations.js b/src/store/collections/mutations.js
new file mode 100644
index 0000000000000000000000000000000000000000..63131e23c8af12f69974dbdda82f5e1edac53e4c
--- /dev/null
+++ b/src/store/collections/mutations.js
@@ -0,0 +1,4 @@
+/*
+export function someMutation (state) {
+}
+*/
diff --git a/src/store/collections/state.js b/src/store/collections/state.js
new file mode 100644
index 0000000000000000000000000000000000000000..40b8bc3fadccaf58e64f12bf5e427d57543a1b1b
--- /dev/null
+++ b/src/store/collections/state.js
@@ -0,0 +1,3 @@
+export default {
+  //
+}
diff --git a/src/store/index.js b/src/store/index.js
index 357e73cd2db9490cac88283cc468f831ace5e5a6..abcec94865b27bd3aff07a035202d53c67394539 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -6,6 +6,11 @@ import Vuex from "vuex";
 Vue.use(Vuex);
 
 import auth from "./auth";
+import categories from "./categories";
+import projects from "./projects";
+import collections from "./collections";
+import ui from "./ui";
+
 /*
  * If not building with SSR mode, you can
  * directly export the Store instantiation
@@ -15,7 +20,11 @@ export default function(/* { ssrContext } */) {
   const Store = new Vuex.Store({
     modules: {
       // example
-      auth
+      auth,
+      categories,
+      projects,
+      collections,
+      ui
     },
 
     // enable strict mode (adds overhead!)
diff --git a/src/store/module-example/actions.js b/src/store/module-example/actions.js
deleted file mode 100644
index cf42235248229bf14f04e77a9ca239f0caae6fae..0000000000000000000000000000000000000000
--- a/src/store/module-example/actions.js
+++ /dev/null
@@ -1,2 +0,0 @@
-export function someAction (/* context */) {
-}
diff --git a/src/store/module-example/getters.js b/src/store/module-example/getters.js
deleted file mode 100644
index ce8aa1f26bffc2d952395192050c4b27643d599c..0000000000000000000000000000000000000000
--- a/src/store/module-example/getters.js
+++ /dev/null
@@ -1,2 +0,0 @@
-export function someGetter (/* state */) {
-}
diff --git a/src/store/module-example/mutations.js b/src/store/module-example/mutations.js
deleted file mode 100644
index ce57bfbced558dc936316f8918421bcab16952cc..0000000000000000000000000000000000000000
--- a/src/store/module-example/mutations.js
+++ /dev/null
@@ -1,2 +0,0 @@
-export function someMutation (/* state */) {
-}
diff --git a/src/store/projects/actions.js b/src/store/projects/actions.js
new file mode 100644
index 0000000000000000000000000000000000000000..06db648edecdb7de630087d2b12976158ff704bd
--- /dev/null
+++ b/src/store/projects/actions.js
@@ -0,0 +1,34 @@
+/*
+export function someAction (context) {
+}
+*/
+import "firebase/app";
+
+export function setProjectsRef({ commit }, ref) {}
+export function setCategoryRef({ commit }, ref) {}
+
+export function loadAllProjects({ state, dispatch }) {
+  const db = firebase.database();
+
+  var ref = db
+    .ref("library/projects")
+    .orderByKey()
+    .limitToFirst(state.limit);
+
+  dispatch("setProjectsRef", ref);
+}
+
+export function loadCategory({ state, dispatch }, category_id) {
+  const db = firebase.database();
+
+  var projects_ref = db
+    .ref("library/projects")
+    .orderByChild("category")
+    .equalTo(category_id)
+    .limitToFirst(state.limit);
+
+  var cat_ref = db.ref("library/categories/" + category_id);
+
+  dispatch("setProjectsRef", projects_ref);
+  dispatch("setCategoryRef", cat_ref);
+}
diff --git a/src/store/projects/getters.js b/src/store/projects/getters.js
new file mode 100644
index 0000000000000000000000000000000000000000..cc054a3aebb29873fee7c2375e66a8947d291665
--- /dev/null
+++ b/src/store/projects/getters.js
@@ -0,0 +1,4 @@
+/*
+export function someGetter (state) {
+}
+*/
diff --git a/src/store/projects/index.js b/src/store/projects/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..b41a219b92f9c48f8b7c6f6dd5de01a21f954851
--- /dev/null
+++ b/src/store/projects/index.js
@@ -0,0 +1,12 @@
+import state from './state'
+import * as getters from './getters'
+import * as mutations from './mutations'
+import * as actions from './actions'
+
+export default {
+  namespaced: true,
+  state,
+  getters,
+  mutations,
+  actions
+}
diff --git a/src/store/projects/mutations.js b/src/store/projects/mutations.js
new file mode 100644
index 0000000000000000000000000000000000000000..63131e23c8af12f69974dbdda82f5e1edac53e4c
--- /dev/null
+++ b/src/store/projects/mutations.js
@@ -0,0 +1,4 @@
+/*
+export function someMutation (state) {
+}
+*/
diff --git a/src/store/projects/state.js b/src/store/projects/state.js
new file mode 100644
index 0000000000000000000000000000000000000000..4b0690364995b0880e54e58ef70e785d0b408d32
--- /dev/null
+++ b/src/store/projects/state.js
@@ -0,0 +1,5 @@
+export default {
+  //
+  limit: 50,
+  projects: []
+};
diff --git a/src/store/ui/actions.js b/src/store/ui/actions.js
new file mode 100644
index 0000000000000000000000000000000000000000..4787a5f044cc064c86477d3503bb20dbc75c6146
--- /dev/null
+++ b/src/store/ui/actions.js
@@ -0,0 +1,4 @@
+/*
+export function someAction (context) {
+}
+*/
diff --git a/src/store/ui/getters.js b/src/store/ui/getters.js
new file mode 100644
index 0000000000000000000000000000000000000000..cc054a3aebb29873fee7c2375e66a8947d291665
--- /dev/null
+++ b/src/store/ui/getters.js
@@ -0,0 +1,4 @@
+/*
+export function someGetter (state) {
+}
+*/
diff --git a/src/store/ui/index.js b/src/store/ui/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..b41a219b92f9c48f8b7c6f6dd5de01a21f954851
--- /dev/null
+++ b/src/store/ui/index.js
@@ -0,0 +1,12 @@
+import state from './state'
+import * as getters from './getters'
+import * as mutations from './mutations'
+import * as actions from './actions'
+
+export default {
+  namespaced: true,
+  state,
+  getters,
+  mutations,
+  actions
+}
diff --git a/src/store/ui/mutations.js b/src/store/ui/mutations.js
new file mode 100644
index 0000000000000000000000000000000000000000..63131e23c8af12f69974dbdda82f5e1edac53e4c
--- /dev/null
+++ b/src/store/ui/mutations.js
@@ -0,0 +1,4 @@
+/*
+export function someMutation (state) {
+}
+*/
diff --git a/src/store/ui/state.js b/src/store/ui/state.js
new file mode 100644
index 0000000000000000000000000000000000000000..40b8bc3fadccaf58e64f12bf5e427d57543a1b1b
--- /dev/null
+++ b/src/store/ui/state.js
@@ -0,0 +1,3 @@
+export default {
+  //
+}