diff --git a/contrib/frontends/cpp/nntpchan-daemon/.gitignore b/contrib/backends/nntpchan-daemon/.gitignore similarity index 100% rename from contrib/frontends/cpp/nntpchan-daemon/.gitignore rename to contrib/backends/nntpchan-daemon/.gitignore diff --git a/contrib/frontends/cpp/nntpchan-daemon/Makefile b/contrib/backends/nntpchan-daemon/Makefile similarity index 100% rename from contrib/frontends/cpp/nntpchan-daemon/Makefile rename to contrib/backends/nntpchan-daemon/Makefile diff --git a/contrib/frontends/cpp/nntpchan-daemon/nntpchan.cpp b/contrib/backends/nntpchan-daemon/nntpchan.cpp similarity index 100% rename from contrib/frontends/cpp/nntpchan-daemon/nntpchan.cpp rename to contrib/backends/nntpchan-daemon/nntpchan.cpp diff --git a/contrib/frontends/cpp/nntpchan-daemon/nntpchan.ini b/contrib/backends/nntpchan-daemon/nntpchan.ini similarity index 100% rename from contrib/frontends/cpp/nntpchan-daemon/nntpchan.ini rename to contrib/backends/nntpchan-daemon/nntpchan.ini diff --git a/contrib/frontends/cpp/nntpchan-daemon/src/base64.cpp b/contrib/backends/nntpchan-daemon/src/base64.cpp similarity index 100% rename from contrib/frontends/cpp/nntpchan-daemon/src/base64.cpp rename to contrib/backends/nntpchan-daemon/src/base64.cpp diff --git a/contrib/frontends/cpp/nntpchan-daemon/src/base64.hpp b/contrib/backends/nntpchan-daemon/src/base64.hpp similarity index 100% rename from contrib/frontends/cpp/nntpchan-daemon/src/base64.hpp rename to contrib/backends/nntpchan-daemon/src/base64.hpp diff --git a/contrib/frontends/cpp/nntpchan-daemon/src/buffer.cpp b/contrib/backends/nntpchan-daemon/src/buffer.cpp similarity index 100% rename from contrib/frontends/cpp/nntpchan-daemon/src/buffer.cpp rename to contrib/backends/nntpchan-daemon/src/buffer.cpp diff --git a/contrib/frontends/cpp/nntpchan-daemon/src/buffer.hpp b/contrib/backends/nntpchan-daemon/src/buffer.hpp similarity index 100% rename from contrib/frontends/cpp/nntpchan-daemon/src/buffer.hpp rename to contrib/backends/nntpchan-daemon/src/buffer.hpp diff --git a/contrib/frontends/cpp/nntpchan-daemon/src/crypto.cpp b/contrib/backends/nntpchan-daemon/src/crypto.cpp similarity index 100% rename from contrib/frontends/cpp/nntpchan-daemon/src/crypto.cpp rename to contrib/backends/nntpchan-daemon/src/crypto.cpp diff --git a/contrib/frontends/cpp/nntpchan-daemon/src/crypto.hpp b/contrib/backends/nntpchan-daemon/src/crypto.hpp similarity index 100% rename from contrib/frontends/cpp/nntpchan-daemon/src/crypto.hpp rename to contrib/backends/nntpchan-daemon/src/crypto.hpp diff --git a/contrib/frontends/cpp/nntpchan-daemon/src/event.cpp b/contrib/backends/nntpchan-daemon/src/event.cpp similarity index 100% rename from contrib/frontends/cpp/nntpchan-daemon/src/event.cpp rename to contrib/backends/nntpchan-daemon/src/event.cpp diff --git a/contrib/frontends/cpp/nntpchan-daemon/src/event.hpp b/contrib/backends/nntpchan-daemon/src/event.hpp similarity index 100% rename from contrib/frontends/cpp/nntpchan-daemon/src/event.hpp rename to contrib/backends/nntpchan-daemon/src/event.hpp diff --git a/contrib/frontends/cpp/nntpchan-daemon/src/ini.hpp b/contrib/backends/nntpchan-daemon/src/ini.hpp similarity index 100% rename from contrib/frontends/cpp/nntpchan-daemon/src/ini.hpp rename to contrib/backends/nntpchan-daemon/src/ini.hpp diff --git a/contrib/frontends/cpp/nntpchan-daemon/src/line.cpp b/contrib/backends/nntpchan-daemon/src/line.cpp similarity index 100% rename from contrib/frontends/cpp/nntpchan-daemon/src/line.cpp rename to contrib/backends/nntpchan-daemon/src/line.cpp diff --git a/contrib/frontends/cpp/nntpchan-daemon/src/line.hpp b/contrib/backends/nntpchan-daemon/src/line.hpp similarity index 100% rename from contrib/frontends/cpp/nntpchan-daemon/src/line.hpp rename to contrib/backends/nntpchan-daemon/src/line.hpp diff --git a/contrib/frontends/cpp/nntpchan-daemon/src/message.cpp b/contrib/backends/nntpchan-daemon/src/message.cpp similarity index 100% rename from contrib/frontends/cpp/nntpchan-daemon/src/message.cpp rename to contrib/backends/nntpchan-daemon/src/message.cpp diff --git a/contrib/frontends/cpp/nntpchan-daemon/src/message.hpp b/contrib/backends/nntpchan-daemon/src/message.hpp similarity index 100% rename from contrib/frontends/cpp/nntpchan-daemon/src/message.hpp rename to contrib/backends/nntpchan-daemon/src/message.hpp diff --git a/contrib/frontends/cpp/nntpchan-daemon/src/net.cpp b/contrib/backends/nntpchan-daemon/src/net.cpp similarity index 100% rename from contrib/frontends/cpp/nntpchan-daemon/src/net.cpp rename to contrib/backends/nntpchan-daemon/src/net.cpp diff --git a/contrib/frontends/cpp/nntpchan-daemon/src/net.hpp b/contrib/backends/nntpchan-daemon/src/net.hpp similarity index 100% rename from contrib/frontends/cpp/nntpchan-daemon/src/net.hpp rename to contrib/backends/nntpchan-daemon/src/net.hpp diff --git a/contrib/frontends/cpp/nntpchan-daemon/src/nntp_auth.cpp b/contrib/backends/nntpchan-daemon/src/nntp_auth.cpp similarity index 100% rename from contrib/frontends/cpp/nntpchan-daemon/src/nntp_auth.cpp rename to contrib/backends/nntpchan-daemon/src/nntp_auth.cpp diff --git a/contrib/frontends/cpp/nntpchan-daemon/src/nntp_auth.hpp b/contrib/backends/nntpchan-daemon/src/nntp_auth.hpp similarity index 100% rename from contrib/frontends/cpp/nntpchan-daemon/src/nntp_auth.hpp rename to contrib/backends/nntpchan-daemon/src/nntp_auth.hpp diff --git a/contrib/frontends/cpp/nntpchan-daemon/src/nntp_handler.cpp b/contrib/backends/nntpchan-daemon/src/nntp_handler.cpp similarity index 100% rename from contrib/frontends/cpp/nntpchan-daemon/src/nntp_handler.cpp rename to contrib/backends/nntpchan-daemon/src/nntp_handler.cpp diff --git a/contrib/frontends/cpp/nntpchan-daemon/src/nntp_handler.hpp b/contrib/backends/nntpchan-daemon/src/nntp_handler.hpp similarity index 100% rename from contrib/frontends/cpp/nntpchan-daemon/src/nntp_handler.hpp rename to contrib/backends/nntpchan-daemon/src/nntp_handler.hpp diff --git a/contrib/frontends/cpp/nntpchan-daemon/src/nntp_server.cpp b/contrib/backends/nntpchan-daemon/src/nntp_server.cpp similarity index 100% rename from contrib/frontends/cpp/nntpchan-daemon/src/nntp_server.cpp rename to contrib/backends/nntpchan-daemon/src/nntp_server.cpp diff --git a/contrib/frontends/cpp/nntpchan-daemon/src/nntp_server.hpp b/contrib/backends/nntpchan-daemon/src/nntp_server.hpp similarity index 100% rename from contrib/frontends/cpp/nntpchan-daemon/src/nntp_server.hpp rename to contrib/backends/nntpchan-daemon/src/nntp_server.hpp diff --git a/contrib/frontends/cpp/nntpchan-daemon/src/storage.cpp b/contrib/backends/nntpchan-daemon/src/storage.cpp similarity index 100% rename from contrib/frontends/cpp/nntpchan-daemon/src/storage.cpp rename to contrib/backends/nntpchan-daemon/src/storage.cpp diff --git a/contrib/frontends/cpp/nntpchan-daemon/src/storage.hpp b/contrib/backends/nntpchan-daemon/src/storage.hpp similarity index 100% rename from contrib/frontends/cpp/nntpchan-daemon/src/storage.hpp rename to contrib/backends/nntpchan-daemon/src/storage.hpp diff --git a/contrib/frontends/cpp/nntpchan-daemon/tool.cpp b/contrib/backends/nntpchan-daemon/tool.cpp similarity index 100% rename from contrib/frontends/cpp/nntpchan-daemon/tool.cpp rename to contrib/backends/nntpchan-daemon/tool.cpp