diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2af7aa86..74115564 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -98,7 +98,7 @@ get_filename_component(C_COMPILER "${CMAKE_C_COMPILER}" NAME)
# Sources
# Main lib
-set(PIP_FOLDERS "." "core" "containers" "thread" "system" "io" "console" "math" "code" "geo" "resources" "opencl" "crypt")
+set(PIP_FOLDERS "." "core" "containers" "thread" "system" "io_devices" "io_utils" "console" "math" "code" "geo" "resources" "opencl" "crypt")
include_directories("${PIP_SRC_MAIN}")
foreach(F ${PIP_FOLDERS})
include_directories("${PIP_SRC_MAIN}/${F}")
diff --git a/src_main/io/pibinarylog.cpp b/src_main/io_devices/pibinarylog.cpp
similarity index 100%
rename from src_main/io/pibinarylog.cpp
rename to src_main/io_devices/pibinarylog.cpp
diff --git a/src_main/io/pibinarylog.h b/src_main/io_devices/pibinarylog.h
similarity index 100%
rename from src_main/io/pibinarylog.h
rename to src_main/io_devices/pibinarylog.h
diff --git a/src_main/io/pican.cpp b/src_main/io_devices/pican.cpp
similarity index 100%
rename from src_main/io/pican.cpp
rename to src_main/io_devices/pican.cpp
diff --git a/src_main/io/pican.h b/src_main/io_devices/pican.h
similarity index 100%
rename from src_main/io/pican.h
rename to src_main/io_devices/pican.h
diff --git a/src_main/io/piconfig.cpp b/src_main/io_devices/piconfig.cpp
similarity index 100%
rename from src_main/io/piconfig.cpp
rename to src_main/io_devices/piconfig.cpp
diff --git a/src_main/io/piconfig.h b/src_main/io_devices/piconfig.h
similarity index 100%
rename from src_main/io/piconfig.h
rename to src_main/io_devices/piconfig.h
diff --git a/src_main/io/pidir.cpp b/src_main/io_devices/pidir.cpp
similarity index 100%
rename from src_main/io/pidir.cpp
rename to src_main/io_devices/pidir.cpp
diff --git a/src_main/io/pidir.h b/src_main/io_devices/pidir.h
similarity index 100%
rename from src_main/io/pidir.h
rename to src_main/io_devices/pidir.h
diff --git a/src_main/io/piethernet.cpp b/src_main/io_devices/piethernet.cpp
similarity index 100%
rename from src_main/io/piethernet.cpp
rename to src_main/io_devices/piethernet.cpp
diff --git a/src_main/io/piethernet.h b/src_main/io_devices/piethernet.h
similarity index 100%
rename from src_main/io/piethernet.h
rename to src_main/io_devices/piethernet.h
diff --git a/src_main/io/pifile.cpp b/src_main/io_devices/pifile.cpp
similarity index 100%
rename from src_main/io/pifile.cpp
rename to src_main/io_devices/pifile.cpp
diff --git a/src_main/io/pifile.h b/src_main/io_devices/pifile.h
similarity index 100%
rename from src_main/io/pifile.h
rename to src_main/io_devices/pifile.h
diff --git a/src_main/io/piiobytearray.cpp b/src_main/io_devices/piiobytearray.cpp
similarity index 100%
rename from src_main/io/piiobytearray.cpp
rename to src_main/io_devices/piiobytearray.cpp
diff --git a/src_main/io/piiobytearray.h b/src_main/io_devices/piiobytearray.h
similarity index 100%
rename from src_main/io/piiobytearray.h
rename to src_main/io_devices/piiobytearray.h
diff --git a/src_main/io/piiodevice.cpp b/src_main/io_devices/piiodevice.cpp
similarity index 100%
rename from src_main/io/piiodevice.cpp
rename to src_main/io_devices/piiodevice.cpp
diff --git a/src_main/io/piiodevice.h b/src_main/io_devices/piiodevice.h
similarity index 100%
rename from src_main/io/piiodevice.h
rename to src_main/io_devices/piiodevice.h
diff --git a/src_main/io/piiomodule.h b/src_main/io_devices/piiodevicesmodule.h
similarity index 84%
rename from src_main/io/piiomodule.h
rename to src_main/io_devices/piiodevicesmodule.h
index e88e6625..c5d700e5 100644
--- a/src_main/io/piiomodule.h
+++ b/src_main/io_devices/piiodevicesmodule.h
@@ -17,26 +17,22 @@
along with this program. If not, see .
*/
-#ifndef PIIOMODULE_H
-#define PIIOMODULE_H
+#ifndef PIIODEVICESMODULE_H
+#define PIIODEVICESMODULE_H
-#include "pifile.h"
-#include "piconfig.h"
-#include "piserial.h"
-#include "piethernet.h"
-#include "piusb.h"
-#include "pidiagnostics.h"
-#include "pidir.h"
#include "pibinarylog.h"
-#include "pifiletransfer.h"
-#include "pidatatransfer.h"
-#include "piiostring.h"
+#include "pican.h"
+#include "piconfig.h"
+#include "pidir.h"
+#include "piethernet.h"
+#include "pifile.h"
#include "piiobytearray.h"
-#include "pitransparentdevice.h"
+#include "piiostring.h"
#include "pipeer.h"
-#include "pipacketextractor.h"
-#include "piconnection.h"
+#include "piserial.h"
#include "pisharedmemory.h"
#include "pispi.h"
+#include "pitransparentdevice.h"
+#include "piusb.h"
-#endif // PIIOMODULE_H
+#endif // PIIODEVICESMODULE_H
diff --git a/src_main/io_devices/piiomodule.h b/src_main/io_devices/piiomodule.h
new file mode 100644
index 00000000..8de428ec
--- /dev/null
+++ b/src_main/io_devices/piiomodule.h
@@ -0,0 +1,25 @@
+/*
+ PIP - Platform Independent Primitives
+ Module includes
+ Copyright (C) 2018 Ivan Pelipenko peri4ko@yandex.ru
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+*/
+
+#ifndef PIIOMODULE_H
+#define PIIOMODULE_H
+
+#include "piiodevicesmodule.h"
+
+#endif // PIIOMODULE_H
diff --git a/src_main/io/piiostring.cpp b/src_main/io_devices/piiostring.cpp
similarity index 100%
rename from src_main/io/piiostring.cpp
rename to src_main/io_devices/piiostring.cpp
diff --git a/src_main/io/piiostring.h b/src_main/io_devices/piiostring.h
similarity index 100%
rename from src_main/io/piiostring.h
rename to src_main/io_devices/piiostring.h
diff --git a/src_main/io/pimultiprotocol.cpp b/src_main/io_devices/pimultiprotocol.cpp
similarity index 100%
rename from src_main/io/pimultiprotocol.cpp
rename to src_main/io_devices/pimultiprotocol.cpp
diff --git a/src_main/io/pimultiprotocol.h b/src_main/io_devices/pimultiprotocol.h
similarity index 100%
rename from src_main/io/pimultiprotocol.h
rename to src_main/io_devices/pimultiprotocol.h
diff --git a/src_main/io/pipeer.cpp b/src_main/io_devices/pipeer.cpp
similarity index 100%
rename from src_main/io/pipeer.cpp
rename to src_main/io_devices/pipeer.cpp
diff --git a/src_main/io/pipeer.h b/src_main/io_devices/pipeer.h
similarity index 100%
rename from src_main/io/pipeer.h
rename to src_main/io_devices/pipeer.h
diff --git a/src_main/io/piprotocol.cpp b/src_main/io_devices/piprotocol.cpp
similarity index 100%
rename from src_main/io/piprotocol.cpp
rename to src_main/io_devices/piprotocol.cpp
diff --git a/src_main/io/piprotocol.h b/src_main/io_devices/piprotocol.h
similarity index 100%
rename from src_main/io/piprotocol.h
rename to src_main/io_devices/piprotocol.h
diff --git a/src_main/io/piserial.cpp b/src_main/io_devices/piserial.cpp
similarity index 100%
rename from src_main/io/piserial.cpp
rename to src_main/io_devices/piserial.cpp
diff --git a/src_main/io/piserial.h b/src_main/io_devices/piserial.h
similarity index 100%
rename from src_main/io/piserial.h
rename to src_main/io_devices/piserial.h
diff --git a/src_main/io/pisharedmemory.cpp b/src_main/io_devices/pisharedmemory.cpp
similarity index 100%
rename from src_main/io/pisharedmemory.cpp
rename to src_main/io_devices/pisharedmemory.cpp
diff --git a/src_main/io/pisharedmemory.h b/src_main/io_devices/pisharedmemory.h
similarity index 100%
rename from src_main/io/pisharedmemory.h
rename to src_main/io_devices/pisharedmemory.h
diff --git a/src_main/io/pispi.cpp b/src_main/io_devices/pispi.cpp
similarity index 100%
rename from src_main/io/pispi.cpp
rename to src_main/io_devices/pispi.cpp
diff --git a/src_main/io/pispi.h b/src_main/io_devices/pispi.h
similarity index 100%
rename from src_main/io/pispi.h
rename to src_main/io_devices/pispi.h
diff --git a/src_main/io/pitransparentdevice.cpp b/src_main/io_devices/pitransparentdevice.cpp
similarity index 100%
rename from src_main/io/pitransparentdevice.cpp
rename to src_main/io_devices/pitransparentdevice.cpp
diff --git a/src_main/io/pitransparentdevice.h b/src_main/io_devices/pitransparentdevice.h
similarity index 100%
rename from src_main/io/pitransparentdevice.h
rename to src_main/io_devices/pitransparentdevice.h
diff --git a/src_main/io/piusb.h b/src_main/io_devices/piusb.h
similarity index 100%
rename from src_main/io/piusb.h
rename to src_main/io_devices/piusb.h
diff --git a/src_main/io/pibasetransfer.cpp b/src_main/io_utils/pibasetransfer.cpp
similarity index 100%
rename from src_main/io/pibasetransfer.cpp
rename to src_main/io_utils/pibasetransfer.cpp
diff --git a/src_main/io/pibasetransfer.h b/src_main/io_utils/pibasetransfer.h
similarity index 100%
rename from src_main/io/pibasetransfer.h
rename to src_main/io_utils/pibasetransfer.h
diff --git a/src_main/io/piconnection.cpp b/src_main/io_utils/piconnection.cpp
old mode 100755
new mode 100644
similarity index 100%
rename from src_main/io/piconnection.cpp
rename to src_main/io_utils/piconnection.cpp
diff --git a/src_main/io/piconnection.h b/src_main/io_utils/piconnection.h
old mode 100755
new mode 100644
similarity index 100%
rename from src_main/io/piconnection.h
rename to src_main/io_utils/piconnection.h
diff --git a/src_main/io/pidatatransfer.cpp b/src_main/io_utils/pidatatransfer.cpp
similarity index 100%
rename from src_main/io/pidatatransfer.cpp
rename to src_main/io_utils/pidatatransfer.cpp
diff --git a/src_main/io/pidatatransfer.h b/src_main/io_utils/pidatatransfer.h
similarity index 100%
rename from src_main/io/pidatatransfer.h
rename to src_main/io_utils/pidatatransfer.h
diff --git a/src_main/io/pidiagnostics.cpp b/src_main/io_utils/pidiagnostics.cpp
old mode 100755
new mode 100644
similarity index 100%
rename from src_main/io/pidiagnostics.cpp
rename to src_main/io_utils/pidiagnostics.cpp
diff --git a/src_main/io/pidiagnostics.h b/src_main/io_utils/pidiagnostics.h
old mode 100755
new mode 100644
similarity index 100%
rename from src_main/io/pidiagnostics.h
rename to src_main/io_utils/pidiagnostics.h
diff --git a/src_main/io/pifiletransfer.cpp b/src_main/io_utils/pifiletransfer.cpp
similarity index 100%
rename from src_main/io/pifiletransfer.cpp
rename to src_main/io_utils/pifiletransfer.cpp
diff --git a/src_main/io/pifiletransfer.h b/src_main/io_utils/pifiletransfer.h
similarity index 100%
rename from src_main/io/pifiletransfer.h
rename to src_main/io_utils/pifiletransfer.h
diff --git a/src_main/io_utils/piioutilsmodule.h b/src_main/io_utils/piioutilsmodule.h
new file mode 100644
index 00000000..9e6eaef0
--- /dev/null
+++ b/src_main/io_utils/piioutilsmodule.h
@@ -0,0 +1,30 @@
+/*
+ PIP - Platform Independent Primitives
+ Module includes
+ Copyright (C) 2018 Ivan Pelipenko peri4ko@yandex.ru
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+*/
+
+#ifndef PIIOUTILSMODULE_H
+#define PIIOUTILSMODULE_H
+
+#include "pibasetransfer.h"
+#include "piconnection.h"
+#include "pidatatransfer.h"
+#include "pidiagnostics.h"
+#include "pifiletransfer.h"
+#include "pipacketextractor.h"
+
+#endif // PIIOUTILSMODULE_H
diff --git a/src_main/io/pipacketextractor.cpp b/src_main/io_utils/pipacketextractor.cpp
old mode 100755
new mode 100644
similarity index 100%
rename from src_main/io/pipacketextractor.cpp
rename to src_main/io_utils/pipacketextractor.cpp
diff --git a/src_main/io/pipacketextractor.h b/src_main/io_utils/pipacketextractor.h
old mode 100755
new mode 100644
similarity index 100%
rename from src_main/io/pipacketextractor.h
rename to src_main/io_utils/pipacketextractor.h
diff --git a/src_main/piversion.h b/src_main/piversion.h
index 36c3f128..41c105bb 100644
--- a/src_main/piversion.h
+++ b/src_main/piversion.h
@@ -3,8 +3,8 @@
#define PIVERSION_H
#define PIP_VERSION_MAJOR 1
-#define PIP_VERSION_MINOR 7
-#define PIP_VERSION_REVISION 2
+#define PIP_VERSION_MINOR 8
+#define PIP_VERSION_REVISION 0
#define PIP_VERSION_SUFFIX ""
#endif // PIVERSION_H