diff --git a/CMakeLists.txt b/CMakeLists.txt
index 68732de..1de7c94 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -12,8 +12,17 @@ if(TARGET ${PROJECT_NAME})
   return()
 endif()
 
-set (QT_VERSION_MAJOR OFF)
-set (BUILD_SHARED_LIBS ON)
+if (NOT DEFINED BUILD_SHARED_LIBS)
+    set (BUILD_SHARED_LIBS ON)
+endif()
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+set(CMAKE_CXX_STANDARD 17)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
 
 find_package(QT NAMES Qt6 Qt5 COMPONENTS Core Test QUIET)
 find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Test QUIET)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 4cb9d7e..156caf5 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -19,7 +19,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
 
 include(../CMake/ProjectOut.cmake)
 include(../CMake/Version.cmake)
-include(../CMake/tr.cmake)
+include(../CMake/QtUtils.cmake)
 
 add_subdirectory(Library)
 add_subdirectory(Example)
diff --git a/src/Example/CMakeLists.txt b/src/Example/CMakeLists.txt
index 79612d6..dd78a1e 100644
--- a/src/Example/CMakeLists.txt
+++ b/src/Example/CMakeLists.txt
@@ -9,24 +9,27 @@ cmake_minimum_required(VERSION 3.14)
 
 set(CURRENT_PROJECT "${PROJECT_NAME}Eaxample")
 
-
-find_package(QT NAMES Qt6 Qt5 COMPONENTS Core REQUIRED)
-find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core REQUIRED)
-
 file(GLOB SOURCE_CPP
-    "*.cpp" "*.qrc"
-    "src/*.cpp" "src/*.qrc"
-    "src/Private/*.cpp" "src/Private/*.qrc"
+    "*.cpp"
+     "Private/*.cpp"
 )
 
-set(PUBLIC_INCUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
-set(PUBLIC_INCUDE_DIR ${PUBLIC_INCUDE_DIR} "${CMAKE_CURRENT_SOURCE_DIR}/src")
-set(PRIVATE_INCUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src/Private")
+if (${QT_VERSION_MAJOR})
+    file(GLOB SOURCE_QRC
+        "*.qrc"
+        "Private/*.qrc"
+    )
 
-add_executable(${CURRENT_PROJECT} ${SOURCE_CPP})
+endif()
+
+set(PUBLIC_INCUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
+
+set(PRIVATE_INCUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/Private")
+
+add_executable(${CURRENT_PROJECT} ${SOURCE_CPP} ${SOURCE_QRC})
 
 if (${QT_VERSION_MAJOR})
-    target_link_libraries(${CURRENT_PROJECT} PUBLIC Qt::Core)
+    target_link_libraries(${CURRENT_PROJECT} PUBLIC Qt${QT_VERSION_MAJOR}::Core)
 endif()
 target_link_libraries(${CURRENT_PROJECT} PUBLIC ${PROJECT_NAME})
 
diff --git a/src/Example/src/main.cpp b/src/Example/main.cpp
similarity index 100%
rename from src/Example/src/main.cpp
rename to src/Example/main.cpp
diff --git a/src/Library/CMakeLists.txt b/src/Library/CMakeLists.txt
index 250fccf..10719fd 100644
--- a/src/Library/CMakeLists.txt
+++ b/src/Library/CMakeLists.txt
@@ -10,24 +10,27 @@ cmake_minimum_required(VERSION 3.14)
 add_definitions(-DRENAME_ME_LIBRARY)
 
 
-find_package(QT NAMES Qt6 Qt5 COMPONENTS Core REQUIRED)
-find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core REQUIRED)
-
 file(GLOB SOURCE_CPP
-    "*.cpp" "*.qrc"
-    "src/*.cpp" "src/*.qrc"
-    "src/Private/*.cpp" "src/Private/*.qrc"
+    "*.cpp"
+     "Private/*.cpp"
 )
 
+if (${QT_VERSION_MAJOR})
+    file(GLOB SOURCE_QRC
+        "*.qrc"
+        "Private/*.qrc"
+    )
+
+endif()
+
 set(PUBLIC_INCUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
-set(PUBLIC_INCUDE_DIR ${PUBLIC_INCUDE_DIR} "${CMAKE_CURRENT_SOURCE_DIR}/src")
-set(PRIVATE_INCUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src/Private")
+set(PRIVATE_INCUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/Private")
 
 
-add_library(${PROJECT_NAME} ${SOURCE_CPP})
+add_library(${PROJECT_NAME} ${SOURCE_CPP} ${SOURCE_QRC})
 
 if (${QT_VERSION_MAJOR})
-    target_link_libraries(${PROJECT_NAME} PUBLIC Qt::Core)
+    target_link_libraries(${PROJECT_NAME} PUBLIC Qt${QT_VERSION_MAJOR}::Core)
 endif()
 
 target_include_directories(${PROJECT_NAME} PUBLIC ${PUBLIC_INCUDE_DIR})
@@ -36,7 +39,7 @@ target_include_directories(${PROJECT_NAME} PRIVATE ${PRIVATE_INCUDE_DIR})
 set(LANGS ${CMAKE_CURRENT_SOURCE_DIR}/languages/en.ts)
 
 
-prepareQM(${CMAKE_CURRENT_SOURCE_DIR} "${LANGS}")
+prepareQM(${PROJECT_NAME} ${CMAKE_CURRENT_SOURCE_DIR} "${LANGS}")
 
 setVersion(0 0 1)
 
diff --git a/src/Library/src/RENAME_ME.qrc b/src/Library/RENAME_ME.qrc
similarity index 100%
rename from src/Library/src/RENAME_ME.qrc
rename to src/Library/RENAME_ME.qrc
diff --git a/src/Library/src/RENAME_ME.cpp b/src/Library/RENAME_ME/RENAME_ME.cpp
similarity index 100%
rename from src/Library/src/RENAME_ME.cpp
rename to src/Library/RENAME_ME/RENAME_ME.cpp
diff --git a/src/Library/src/RENAME_ME.h b/src/Library/RENAME_ME/RENAME_ME.h
similarity index 100%
rename from src/Library/src/RENAME_ME.h
rename to src/Library/RENAME_ME/RENAME_ME.h
diff --git a/src/Library/src/RENAME_ME_global.h b/src/Library/RENAME_ME/RENAME_ME_global.h
similarity index 100%
rename from src/Library/src/RENAME_ME_global.h
rename to src/Library/RENAME_ME/RENAME_ME_global.h
diff --git a/src/Library/src/RENAME_MEModule/RENAME_ME.qml b/src/Library/RENAME_MEModule/RENAME_ME.qml
similarity index 100%
rename from src/Library/src/RENAME_MEModule/RENAME_ME.qml
rename to src/Library/RENAME_MEModule/RENAME_ME.qml
diff --git a/src/Library/src/RENAME_MEModule/qmldir b/src/Library/RENAME_MEModule/qmldir
similarity index 100%
rename from src/Library/src/RENAME_MEModule/qmldir
rename to src/Library/RENAME_MEModule/qmldir
diff --git a/tests/.gitignore b/tests/.gitignore
deleted file mode 100644
index fab7372..0000000
--- a/tests/.gitignore
+++ /dev/null
@@ -1,73 +0,0 @@
-# This file is used to ignore files which are generated
-# ----------------------------------------------------------------------------
-
-*~
-*.autosave
-*.a
-*.core
-*.moc
-*.o
-*.obj
-*.orig
-*.rej
-*.so
-*.so.*
-*_pch.h.cpp
-*_resource.rc
-*.qm
-.#*
-*.*#
-core
-!core/
-tags
-.DS_Store
-.directory
-*.debug
-Makefile*
-*.prl
-*.app
-moc_*.cpp
-ui_*.h
-qrc_*.cpp
-Thumbs.db
-*.res
-*.rc
-/.qmake.cache
-/.qmake.stash
-
-# qtcreator generated files
-*.pro.user*
-
-# xemacs temporary files
-*.flc
-
-# Vim temporary files
-.*.swp
-
-# Visual Studio generated files
-*.ib_pdb_index
-*.idb
-*.ilk
-*.pdb
-*.sln
-*.suo
-*.vcproj
-*vcproj.*.*.user
-*.ncb
-*.sdf
-*.opensdf
-*.vcxproj
-*vcxproj.*
-
-# MinGW generated files
-*.Debug
-*.Release
-
-# Python byte code
-*.pyc
-
-# Binaries
-# --------
-*.dll
-*.exe
-
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index c82cf56..1da5556 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -11,14 +11,6 @@ set(CURRENT_PROJECT ${PROJECT_NAME}Test)
 
 include(../CMake/ProjectOut.cmake)
 
-set(CMAKE_INCLUDE_CURRENT_DIR ON)
-set(CMAKE_AUTOMOC ON)
-set(CMAKE_AUTORCC ON)
-set(CMAKE_AUTOUIC ON)
-
-set(CMAKE_CXX_STANDARD 17)
-set(CMAKE_CXX_STANDARD_REQUIRED ON)
-
 
 file(GLOB SOURCE_CPP
     "*.cpp" "*.qrc"
@@ -29,7 +21,7 @@ set(PUBLIC_INCUDE_DIR ${PUBLIC_INCUDE_DIR} "${CMAKE_CURRENT_SOURCE_DIR}/units")
 
 
 add_executable(${CURRENT_PROJECT} ${SOURCE_CPP})
-target_link_libraries(${CURRENT_PROJECT} PRIVATE Qt::Test RENAME_ME)
+target_link_libraries(${CURRENT_PROJECT} PRIVATE Qt${QT_VERSION_MAJOR}::Test RENAME_ME)
 
 target_include_directories(${CURRENT_PROJECT} PUBLIC ${PUBLIC_INCUDE_DIR})