diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1f2341348727dd172350ef97de7207b52ba3ef86..e9b86b1701afd1a33d276bf66cf48201a3c51d95 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,7 +1,6 @@
 # ------------------------- Begin Generic CMake Variable Logging ------------------
-# todo: how to check these:
-# sudo apt-get install libvtk-java
-# sudo apt-get install python-vtk
+
+# SET(DESIRED_QT_VERSION "3")
 
 # the short system name, e.g. "Linux", "FreeBSD" or "Windows"
 MESSAGE( STATUS "CMAKE_SYSTEM_NAME: " ${CMAKE_SYSTEM_NAME} )
@@ -19,9 +18,15 @@ MESSAGE( STATUS "CMAKE_C_COMPILER: " ${CMAKE_C_COMPILER} )
 MESSAGE( STATUS "CMAKE_CXX_COMPILER: " ${CMAKE_CXX_COMPILER} )
 # ------------------------- End of Generic CMake Variable Logging ------------------
 cmake_minimum_required(VERSION 2.8)
+
+#set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/" ${CMAKE_MODULE_PATH})
+
  # set project's name
 project( JPSvis )
 
+list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}")
+
+message (STATUS "MODULE_PATH" ${CMAKE_MODULE_PATH})
 set(CMAKE_COLOR_MAKEFILE ON)
 set(JPSVIS_MAJOR_VERSION 0)
 set(JPSVIS_MINOR_VERSION 5)
@@ -130,34 +135,15 @@ set( SAMPLE_RCS
   forms/icons.qrc
   )
   
-# by default only QtCore and QtGui modules are enabled
-# other modules must be enabled like this:
-# set( QT_USE_QT3SUPPORT TRUE )   
-set( QT_USE_QTXML TRUE ) # needed!
-
-# set(QT_USE_QTOPENGL TRUE)
-# set(QT_USE_QTNETWORK)
-# set(QT_USE_QTOPENGL)
-# set(QT_USE_QTSQL)
-# set(QT_USE_QTSVG)
-# set(QT_USE_QTTEST)
-# set(QT_USE_QTDBUS)
-# set(QT_USE_QTSCRIPT)
-# set(QT_USE_QTWEBKIT)
-# set(QT_USE_QTXMLPATTERNS)
-# set(QT_USE_PHONON)
-
 
 set(CMAKE_INCLUDE_CURRENT_DIR ON)
   
 #set(VTK_USE_HYBRID ON CACHE BOOL "doc" FORCE)
 find_package(VTK REQUIRED)
-#set(VTK_DIR "/usr/include/vtk-5.8" CACHE PATH "VTK directory override" FORCE)
-#set(VTK_INCLUDE_DIRS "/usr/include/vtk-5.8") # CACHE PATH "VTK directory override" FORCE)
-#set(VTK_LIBRARY_DIRS "/usr/lib/vtk-5.8/" CACHE PATH "VTK directory override" FORCE)
 
 if(VTK_FOUND)
-  message("found VTK. Version:" ${VTK_VERSION}. VTK_DIR: ${VTK_DIR})
+  message(STATUS "found VTK. Version: " ${VTK_VERSION} " |  VTK_DIR: " ${VTK_DIR})
+  message(STATUS "VTK_QT_Version: " ${VTK_QT_VERSION})
 else(VTK_FOUND)
   message(FATAL_ERROR
     "Cannot build the executable without VTK. Please set the
@@ -165,49 +151,68 @@ VTK_DIR")
 endif(VTK_FOUND)
 
 include(${VTK_USE_FILE})
-if(${VTK_VERSION} VERSION_GREATER "6" AND VTK_QT_VERSION VERSION_GREATER "4")
-  message(WARNING: JPSvis is not tested with vtk ${VTK_VERSION})
-endif()
-#   # Instruct CMake to run moc automatically when needed.
+# Instruct CMake to run moc automatically when needed.
 set(CMAKE_AUTOMOC ON)
-#find_package(Qt5Widgets REQUIRED QUIET)
 
-find_package(Qt4 REQUIRED)
-#find_package(Qt5Widgets REQUIRED)
-#find_package(Qt5Test REQUIRED)
+#--------------- here comes QT. Version problem (4 or 5?)
+
+#FIND_PACKAGE( Qt4 REQUIRED )
+#FIND_PACKAGE(QT REQUIRED)
+
+if("${DESIRED_QT_VERSION}" STREQUAL "")
+  set(DESIRED_QT_VERSION "4")
+endif()
+
+if( ${DESIRED_QT_VERSION} VERSION_GREATER "4" OR ${DESIRED_QT_VERSION} VERSION_LESS "3")
+  message(FATAL_ERROR "QT version " ${DESIRED_QT_VERSION} " not supported")
+endif()
+
+message(STATUS "DESIRED_QT_VERSION " ${DESIRED_QT_VERSION})
 
-#include(${QT_USE_FILE})
-  # this command finds Qt4 libraries and sets all required variables
-  # note that it's Qt4, not QT4 or qt4
-FIND_PACKAGE( Qt4 REQUIRED )
-  
-  # add some useful macros and variables
-  # (QT_USE_FILE is a variable defined by FIND_PACKAGE( Qt4 ) that contains a path to CMake script)
- include( ${QT_USE_FILE} )
-  
-  # this command will generate rules that will run rcc on all files from SAMPLE_RCS
-  # in result SAMPLE_RC_SRCS variable will contain paths to files produced by rcc
-  
 
+FIND_PROGRAM(QT_QMAKE_EXECUTABLE NAMES qmake  REQUIRED)
+FIND_PACKAGE(Qt COMPONENTS QtXml QT_USE_QTNETWORK REQUIRED)
+message(STATUS "QT5_INSTALLED " ${QT3_INSTALLED})
+message(STATUS "QT4_INSTALLED " ${QT4_INSTALLED})
+message(STATUS "QT3_INSTALLED " ${QT3_INSTALLED})
+
+
+# by default only QtCore and QtGui modules are enabled
+# other modules must be enabled like this:
+set( QT_USE_QTXML TRUE ) # needed!
+set(QT_USE_QTNETWORK TRUE)
+
+# add some useful macros and variables
+# (QT_USE_FILE is a variable defined by FIND_PACKAGE( Qt4 ) that contains a path to CMake script)
+include( ${QT_USE_FILE} )
+
+# this command will generate rules that will run rcc on all files from SAMPLE_RCS
+# in result SAMPLE_RC_SRCS variable will contain paths to files produced by rcc
+if( ${QT4_INSTALLED} )
   QT4_ADD_RESOURCES( SAMPLE_RC_SRCS ${SAMPLE_RCS} )
-  
-  
   # and finally this will run moc:
   QT4_WRAP_CPP( SAMPLE_MOC_HDRS ${SAMPLE_MOC_HDRS} )
   # this will run uic on .ui files:
   QT4_WRAP_UI( SAMPLE_UI_HDRS ${SAMPLE_UIS} )
+  QT4_ADD_RESOURCES(SAMPLE_RESOURCES_RCS ${SAMPLE_RCS})
+elseif( ${QT5_INSTALLED} )
+  find_package(Qt5Widgets REQUIRED)
+endif()
 
 
-  #QT4_WRAP_UI(helloworld_FORMS_HEADERS ${helloworld_FORMS})
-  QT4_ADD_RESOURCES(SAMPLE_RESOURCES_RCS ${SAMPLE_RCS})
-  
-  # we need this to be able to include headers produced by uic in our code
-  # (CMAKE_BINARY_DIR holds a path to the build directory, while INCLUDE_DIRECTORIES() works just like INCLUDEPATH from qmake)
-  INCLUDE_DIRECTORIES( ${CMAKE_BINARY_DIR} )
-  INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
-  
+if(${VTK_VERSION} VERSION_GREATER "6") #  AND VTK_QT_VERSION VERSION_GREATER "4"
+  message(WARNING "JPSvis is not tested with vtk " ${VTK_VERSION})
+endif()
+
+
+
+# we need this to be able to include headers produced by uic in our code
+# (CMAKE_BINARY_DIR holds a path to the build directory, while INCLUDE_DIRECTORIES() works just like INCLUDEPATH from qmake)
+INCLUDE_DIRECTORIES( ${CMAKE_BINARY_DIR} )
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
+
 # here we instruct CMake to build JPSvis executable from all of the source files
-  ADD_EXECUTABLE( JPSvis ${SAMPLE_SRCS} 
+ADD_EXECUTABLE( JPSvis ${SAMPLE_SRCS} 
     ${SAMPLE_MOC_HDRS}
     ${SAMPLE_UI_HDRS} 
     ${SAMPLE_RESOURCES_RCS}
@@ -216,13 +221,13 @@ FIND_PACKAGE( Qt4 REQUIRED )
   # last thing we have to do is to tell CMake what libraries our executable needs,
   # luckily FIND_PACKAGE prepared QT_LIBRARIES variable for us:
 set(VTK_USE_GUISUPPORT  ON) 
-set(VTK_USE_QT  ON )
-set(VTK_USE_QVTK_QTOPENGL ON )
+set(VTK_USE_QT  ON)
+#set(VTK_USE_QVTK_QTOPENGL ON )
 
 #TARGET_LINK_LIBRARIES( JPSvis ${QT_LIBRARIES} QVTK) # QVTK is for VTK 5.x. For VTK 6, use ${VTK_LIBRARIES} instead
 
 if(${VTK_VERSION} VERSION_LESS "6")
   TARGET_LINK_LIBRARIES( JPSvis ${QT_LIBRARIES} QVTK)
 else()
-  TARGET_LINK_LIBRARIES( JPSvis  ${VTK_LIBRARIES} QVTK)
+  TARGET_LINK_LIBRARIES( JPSvis  ${VTK_LIBRARIES})
 endif()