diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5473cd2..920f1b0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -160,8 +160,8 @@ endif ()
 
 # general
 set (CPACK_PACKAGE_FILE_NAME "morfeusz2-${Morfeusz_VERSION}-${CMAKE_SYSTEM_NAME}-${ARCHITECTURE}")
-set (CPACK_PACKAGE_VENDOR "Michał Lenart")
-set (CPACK_PACKAGE_CONTACT "michal.lenart@ipipan.waw.pl")
+set (CPACK_PACKAGE_VENDOR "Morfeusz SGJP Team")
+set (CPACK_PACKAGE_CONTACT "morfeusz@ipipan.waw.pl")
 set (CPACK_DEBIAN_PACKAGE_VERSION "${Morfeusz_VERSION}")
 if (BUILT_ON)
   set (CPACK_DEBIAN_PACKAGE_RELEASE "${BUILT_ON}")
diff --git a/README b/README
index a7b17a3..ac10ec1 100644
--- a/README
+++ b/README
@@ -5,7 +5,7 @@ Compilation - prerequisites
 
 This tutorial assumes that build process is performed on Linux 64bit machine (preferably from Debian/Ubuntu family).
 
-sudo apt-get install cmake zip build-essential autotools-dev python python-setuptools python-stdeb python-pip python-all-dev python-pyparsing devscripts libcppunit-dev acl
+sudo apt-get install cmake zip build-essential autotools-dev python python-setuptools python-stdeb python-pip python-all-dev python3-pyparsing devscripts libcppunit-dev acl
 sudo pip install pyinstaller
 
 For cross compiling:
@@ -233,10 +233,6 @@ crossmorfeusz
     jdk1.7.0_45
     python  
 
-Notes on Mac OS X cross-compilation:
-------------------
-Very special, very magic and ancient version of gcc OSX compiler is required (Apple is evil and does not support cross-compilation anymore). The best way to obtain it is to personally ask the authors (michal.lenart@ipipan.waw.pl, wolinski@ipipan.waw.pl). Once you get it, the compiler directory (x86_64-apple-darwin9) must be copied into /usr directory.
-
 
 buildAll.sh script:
 -------------------
diff --git a/buildDarwin.sh b/buildDarwin.sh
index 6435657..a109cfc 100755
--- a/buildDarwin.sh
+++ b/buildDarwin.sh
@@ -132,8 +132,6 @@ function buildegg {
     buildDir=$BUILD_ROOT/$os-$bity-$embedded/morfeusz/wrappers/python${python_ver:0:1}
     if [[ "$python_ver" =~ 2.* ]]
     then
-        eggName=morfeusz2-0.4.0-py2.7
-        eggDir=$buildDir/$eggName
         pythonIncl=python27
         if [ "$os-$arch" == "Windows-amd64" ]
         then
@@ -156,19 +154,13 @@ function buildegg {
             if [ "$python_ver" == "3.6" ]
             then
                 pythonDir=$CROSSMORFEUSZ_ROOT/windows64/Python36
-                eggName=morfeusz2-0.4.0-py3.6
-                eggDir=$buildDir/$eggName
                 pythonIncl=python36
             elif [ "$python_ver" == "3.7" ]
             then
                 pythonDir=$CROSSMORFEUSZ_ROOT/windows64/Python37
-                eggName=morfeusz2-0.4.0-py3.7
-                eggDir=$buildDir/$eggName
                 pythonIncl=python37
             fi
         else
-            eggName=morfeusz2-0.4.0-py3.6
-            eggDir=$buildDir/$eggName
             pythonIncl=python36
             if [ "$os-$arch" == "Windows-i386" ]
             then
@@ -188,8 +180,19 @@ function buildegg {
     fi
 
     targetDir=$TARGET_ROOT/$os/$bity
+    echo 'pwd:' `pwd`
+
+    cd $buildDir
+    eggName=$(echo morfeusz2-*-py$python_ver)
+    if [[ ! -d $eggName  ]]; then
+	echo Egg directory $eggName not found in $buildDir!!!
+	exit 1
+    fi
+    eggDir=$buildDir/$eggName
+
     echo "src_dir: $MORFEUSZ_SRC"
     echo "python_build_dir: $buildDir"
+    echo "egg_name: $eggName"
     echo "egg_dir: $eggDir"
     echo "python_lib_dir: $pythonDir"
     if [ "$os-$arch" == "Windows-amd64" ]
@@ -240,6 +243,7 @@ function buildegg {
         cp $buildDir/../../libmorfeusz2.dylib $eggDir/
     fi
 
+    cp $buildDir/morfeusz2.egg-info/PKG-INFO $eggDir/EGG-INFO/
     cp $buildDir/morfeusz2.py $eggDir/
     if [ -d "$buildDir/$eggName" ]; then
         cd $buildDir/$eggName
@@ -276,9 +280,9 @@ export -f log
 mkdir -p log 
 
 build Darwin $BITS true 2 package package-java gui-dmg 2>&1 | log Darwin $BITS; 
-build Darwin $BITS true 2 py2morfeusz 2>&1 | log Darwin $BITS; 
+build Darwin $BITS true 2 package-python2-egg-info 2>&1 | log Darwin $BITS; 
 buildegg Darwin $BITS true 2 2>&1 | log Darwin $BITS; 
-build Darwin $BITS true 3 py3morfeusz 2>&1 | log Darwin $BITS; 
+build Darwin $BITS true 3 package-python3-egg-info 2>&1 | log Darwin $BITS; 
 buildegg Darwin $BITS true 3 2>&1 | log Darwin $BITS
 #build Darwin $BITS true 2 package package-java py2morfeusz 2>&1 | log Darwin $BITS
 #buildegg Darwin $BITS true 2 2>&1 | log Darwin $BITS
diff --git a/buildWindows.sh b/buildWindows.sh
index e3ffff9..c161016 100755
--- a/buildWindows.sh
+++ b/buildWindows.sh
@@ -132,8 +132,6 @@ function buildegg {
     buildDir=$BUILD_ROOT/$os-$bity-$embedded/morfeusz/wrappers/python${python_ver:0:1}
     if [[ "$python_ver" =~ 2.* ]]
     then
-        eggName=morfeusz2-0.4.0-py2.7
-        eggDir=$buildDir/$eggName
         pythonIncl=python27
         if [ "$os-$arch" == "Windows-amd64" ]
         then
@@ -156,19 +154,13 @@ function buildegg {
             if [ "$python_ver" == "3.6" ]
             then
                 pythonDir=$CROSSMORFEUSZ_ROOT/windows64/Python36
-                eggName=morfeusz2-0.4.0-py3.6
-                eggDir=$buildDir/$eggName
                 pythonIncl=python36
             elif [ "$python_ver" == "3.7" ]
             then
                 pythonDir=$CROSSMORFEUSZ_ROOT/windows64/Python37
-                eggName=morfeusz2-0.4.0-py3.7
-                eggDir=$buildDir/$eggName
                 pythonIncl=python37
             fi
         else
-            eggName=morfeusz2-0.4.0-py3.6
-            eggDir=$buildDir/$eggName
             pythonIncl=python36
             if [ "$os-$arch" == "Windows-i386" ]
             then
@@ -186,8 +178,19 @@ function buildegg {
     fi
 
     targetDir=$TARGET_ROOT/$os/$bity
+    echo 'pwd:' `pwd`
+
+    cd $buildDir
+    eggName=$(echo morfeusz2-*-py$python_ver)
+    if [[ ! -d $eggName  ]]; then
+	echo Egg directory $eggName not found in $buildDir!!!
+	exit 1
+    fi
+    eggDir=$buildDir/$eggName
+
     echo "src_dir: $MORFEUSZ_SRC"
     echo "python_build_dir: $buildDir"
+    echo "egg_name: $eggName"
     echo "egg_dir: $eggDir"
     echo "python_lib_dir: $pythonDir"
     if [ "$os-$arch" == "Windows-amd64" ]
@@ -236,6 +239,7 @@ function buildegg {
         cp $buildDir/../../libmorfeusz2.dylib $eggDir/
     fi
 
+    cp $buildDir/morfeusz2.egg-info/PKG-INFO $eggDir/EGG-INFO/
     cp $buildDir/morfeusz2.py $eggDir/
     if [ -d "$buildDir/$eggName" ]; then
         cd $buildDir/$eggName
@@ -271,44 +275,11 @@ export -f log
 ##??? rm -rf log $BUILD_ROOT
 mkdir -p log 
 
-build Windows $BITS true 2.7 package package-java py2morfeusz 2>&1 | log Windows $BITS
-build Windows $BITS true 2.7 gui-installer 2>&1 | log Windows $BITS
+build Windows $BITS true 2.7 package package-java gui-installer 2>&1 | log Windows $BITS
+build Windows $BITS true 2.7 package-python2-egg-info 2>&1 | log Windows $BITS
 buildegg Windows $BITS true 2.7 2>&1 | log Windows $BITS
-build Windows $BITS true 3.6 py3morfeusz 2>&1 | log Windows $BITS
+build Windows $BITS true 3.6 package-python3-egg-info 2>&1 | log Windows $BITS
 buildegg Windows $BITS true 3.6 2>&1 | log Windows $BITS 
-build Windows $BITS true 3.7 py3morfeusz 2>&1 | log Windows $BITS
+build Windows $BITS true 3.7 package-python3-egg-info 2>&1 | log Windows $BITS
 buildegg Windows $BITS true 3.7 2>&1 | log Windows $BITS
 
-# build Windows $BITS true 2.7 package package-java py2morfeusz 2>&1 | log Windows $BITS
-# buildegg Windows $BITS true 2.7 2>&1 | log Windows $BITS
-# build Windows $BITS true 3.0 py3morfeusz 2>&1 | log Windows $BITS 
-# buildegg Windows $BITS true 3.0 2>&1 | log Windows $BITS
-
-
-# {
-#     echo "build Linux amd64 true 2.7 package package-java package-python2 package-builder 2>&1 | log Linux-tgz2 amd64; \
-#         build Linux amd64 true 3.0 package-python3 2>&1 | log Linux-tgz3 amd64"
-#     echo "build Linux amd64 false 0 lib-deb bin-deb dev-deb dictionary-deb java-deb 2>&1 | log Linux-deb amd64"
-#     echo "LDFLAGS=-m32;CFLAGS=-m32;CXXFLAGS=-m32 build Linux i386 true 2.7 package package-java py2morfeusz 2>&1 | log Linux-tgz i386; \
-#         buildegg Linux i386 true 2.7 2>&1 | log Linux i386; \
-#         LDFLAGS=-m32;CFLAGS=-m32;CXXFLAGS=-m32 build Linux i386 true 3.0 py3morfeusz 2>&1 | log Linux-tgz i386; \
-#         buildegg Linux i386 true 3.0 2>&1 | log Linux i386"
-#     echo "LDFLAGS=-m32;CFLAGS=-m32;CXXFLAGS=-m32 build Linux i386 false 0 lib-deb bin-deb java-deb 2>&1 | log Linux-deb i386"
-#     echo "build Windows amd64 true 2.7 package package-java py2morfeusz 2>&1 | log Windows amd64; \
-#         buildegg Windows amd64 true 2.7 2>&1 | log Windows amd64; \
-#         build Windows amd64 true 3.6 py3morfeusz 2>&1 | log Windows amd64; \
-#         buildegg Windows amd64 true 3.6 2>&1 | log Windows amd64; \
-#         build Windows amd64 true 3.7 py3morfeusz 2>&1 | log Windows amd64; \
-#         buildegg Windows amd64 true 3.7 2>&1 | log Windows amd64"
-#     echo "build Windows i386 true 2.7 package package-java py2morfeusz 2>&1 | log Windows i386; \
-#         buildegg Windows i386 true 2.7 2>&1 | log Windows i386; \
-#         build Windows i386 true 3.0 py3morfeusz 2>&1 | log Windows i386 \
-#         buildegg Windows i386 true 3.0 2>&1 | log Windows i386"
-#     echo "build Darwin amd64 true 2 package package-java py2morfeusz 2>&1 | log Darwin amd64; \
-#         buildegg Darwin amd64 true 2 2>&1 | log Darwin amd64; \
-#         build Darwin amd64 true 3 py3morfeusz 2>&1 | log Darwin amd64; \
-#         buildegg Darwin amd64 true 3 2>&1 | log Darwin amd64"
-#     echo "build Darwin amd64 true 2 package package-java py2morfeusz 2>&1 | log Darwin amd64"
-#     echo "buildegg Darwin amd64 true 2 2>&1 | log Darwin amd64"
-
-# } | xargs -n1 -P6 -d$'\n' bash -c
diff --git a/fsabuilder/CMakeLists.txt b/fsabuilder/CMakeLists.txt
index 320b48b..e1c856e 100644
--- a/fsabuilder/CMakeLists.txt
+++ b/fsabuilder/CMakeLists.txt
@@ -28,12 +28,17 @@ add_custom_target (package-builder-egg
     COMMAND python3 ${SETUP_PY} bdist_egg -d "${TARGET_DIR}"
     DEPENDS builder-setup
 )
+add_custom_target (package-builder-whl
+    COMMAND python3 ${SETUP_PY} bdist_wheel -d "${TARGET_DIR}"
+    DEPENDS builder-setup
+)
 add_custom_target (package-builder-sdist
     COMMAND python3 ${SETUP_PY} sdist -d "${TARGET_DIR}"
     DEPENDS builder-setup
 )
 
-set (PACKAGE_DEPENDS "package-builder-egg" "package-builder-sdist")
+set (PACKAGE_DEPENDS "package-builder-egg" "package-builder-whl"
+  "package-builder-sdist")
 
 if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
   if (BUILT_ON)
diff --git a/morfeusz/CMakeLists.txt b/morfeusz/CMakeLists.txt
index 305dde5..42a237b 100644
--- a/morfeusz/CMakeLists.txt
+++ b/morfeusz/CMakeLists.txt
@@ -16,14 +16,14 @@ else ()
         endif ()
         add_custom_command (
             OUTPUT "${ANALYZER_DICTIONARY_CPP}" "${GENERATOR_DICTIONARY_CPP}"
-            COMMAND python ${PROJECT_SOURCE_DIR}/fsabuilder/morfeusz_builder --input-files="${INPUT_DICTIONARIES}" --dict="${DEFAULT_DICT_NAME}" --analyzer-cpp="${ANALYZER_DICTIONARY_CPP}" --generator-cpp="${GENERATOR_DICTIONARY_CPP}" --tagset-file="${INPUT_TAGSET}" --segments-file="${SEGMENT_RULES_FILE}" ${ADDITIONAL_CMD}
+            COMMAND python3 ${PROJECT_SOURCE_DIR}/fsabuilder/morfeusz_builder --input-files="${INPUT_DICTIONARIES}" --dict="${DEFAULT_DICT_NAME}" --analyzer-cpp="${ANALYZER_DICTIONARY_CPP}" --generator-cpp="${GENERATOR_DICTIONARY_CPP}" --tagset-file="${INPUT_TAGSET}" --segments-file="${SEGMENT_RULES_FILE}" ${ADDITIONAL_CMD}
             DEPENDS "${INPUT_DICTIONARY}"
             COMMENT "Building default dictionary C++ files"
         )
     else ()
         add_custom_command (
             OUTPUT "${ANALYZER_DICTIONARY_FILE}" "${GENERATOR_DICTIONARY_FILE}" 
-            COMMAND python ${PROJECT_SOURCE_DIR}/fsabuilder/morfeusz_builder --input-files="${INPUT_DICTIONARIES}" --dict="${DEFAULT_DICT_NAME}" --dict-dir="${DEFAULT_DICT_DIR}"  --tagset-file="${INPUT_TAGSET}" --segments-file="${SEGMENT_RULES_FILE}"
+            COMMAND python3 ${PROJECT_SOURCE_DIR}/fsabuilder/morfeusz_builder --input-files="${INPUT_DICTIONARIES}" --dict="${DEFAULT_DICT_NAME}" --dict-dir="${DEFAULT_DICT_DIR}"  --tagset-file="${INPUT_TAGSET}" --segments-file="${SEGMENT_RULES_FILE}"
             DEPENDS "${INPUT_DICTIONARY}"
             COMMENT "Building default dictionary files"
         )
diff --git a/morfeusz/wrappers/python2/CMakeLists.txt b/morfeusz/wrappers/python2/CMakeLists.txt
index 37d15d1..fa53da6 100644
--- a/morfeusz/wrappers/python2/CMakeLists.txt
+++ b/morfeusz/wrappers/python2/CMakeLists.txt
@@ -5,8 +5,7 @@
 FIND_PACKAGE (PythonLibs ${PY} EXACT)
 #~ INCLUDE (${SWIG_USE_FILE})
 
-set (PY2MORFEUSZ_VERSION "0.4.0")
-#set (PY2MORFEUSZ_VERSION "${Morfeusz_VERSION}")
+set (PY2MORFEUSZ_VERSION "${Morfeusz_LIB_VERSION}")
 
 # SWIG Java
 INCLUDE_DIRECTORIES (${PYTHON_INCLUDE_PATH})
@@ -31,7 +30,9 @@ set (OUTPUT      "${CMAKE_CURRENT_BINARY_DIR}/build")
 
 configure_file (${SETUP_PY_IN} ${SETUP_PY})
 
-file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/morfeusz2-0.4.0-py2.7" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
+set (EGG_NAME "morfeusz2-${PY2MORFEUSZ_VERSION}-py${PY}")
+file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${EGG_NAME}")
+file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/EGG-INFO" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/${EGG_NAME}/")
 
 add_custom_target (generate_python2_setup_file
         DEPENDS ${SETUP_PY})
@@ -52,11 +53,15 @@ if (UNIX)
         COMMAND python2 ${SETUP_PY} install --home=${CMAKE_INSTALL_PREFIX}
         DEPENDS py2morfeusz
     )
-    add_custom_target (package-python2-bin
+    add_custom_target (package-python2-egg
         COMMAND python2 ${SETUP_PY} bdist_egg -d "${TARGET_DIR}" --plat-name "${CMAKE_SYSTEM_NAME}-${ARCHITECTURE}"
         DEPENDS py2morfeusz
     )
-    set (PACKAGE_DEPENDS "package-python2-bin")
+    add_custom_target (package-python2-whl
+        COMMAND python2 ${SETUP_PY} bdist_wheel -d "${TARGET_DIR}"
+        DEPENDS py2morfeusz
+    )
+    set (PACKAGE_DEPENDS "package-python2-egg" "package-python2-whl")
     
     if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
       if (BUILT_ON)
@@ -72,7 +77,6 @@ if (UNIX)
       endif ()
         add_custom_target (package-python2-deb-build
             COMMAND debuild -us -uc
-#            WORKING_DIRECTORY deb_dist/morfeusz2-${Morfeusz_DEB_VERSION}
             WORKING_DIRECTORY deb_dist/morfeusz2-${PY2MORFEUSZ_VERSION}
             DEPENDS package-python2-deb-sdist
         )
@@ -84,6 +88,16 @@ if (UNIX)
     endif ()
     add_custom_target (package-python2
         DEPENDS py2morfeusz ${PACKAGE_DEPENDS})
+elseif (${CMAKE_SYSTEM_NAME} MATCHES "Windows" AND CMAKE_CROSSCOMPILING)
+    add_custom_target (package-python2-egg-info
+      COMMAND python ${SETUP_PY} egg_info
+      DEPENDS generate_python2_wrapper generate_python2_setup_file libmorfeusz
+    )
+elseif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin" AND CMAKE_CROSSCOMPILING)
+    add_custom_target (package-python2-egg-info
+      COMMAND python ${SETUP_PY} egg_info
+      DEPENDS generate_python2_wrapper generate_python2_setup_file libmorfeusz
+    )
 elseif (${CMAKE_SYSTEM_NAME} MATCHES "Windows" AND NOT CMAKE_CROSSCOMPILING)
     add_custom_target (package-python2-win-egg
         COMMAND python2 ${SETUP_PY} bdist_egg -d ${TARGET_DIR} --plat-name "${CMAKE_SYSTEM_NAME}-${ARCHITECTURE}"
diff --git a/morfeusz/wrappers/python2/morfeusz2-0.4.0-py2.7/EGG-INFO/SOURCES.txt b/morfeusz/wrappers/python2/EGG-INFO/SOURCES.txt
index e69de29..e69de29 100644
--- a/morfeusz/wrappers/python2/morfeusz2-0.4.0-py2.7/EGG-INFO/SOURCES.txt
+++ b/morfeusz/wrappers/python2/EGG-INFO/SOURCES.txt
diff --git a/morfeusz/wrappers/python2/morfeusz2-0.4.0-py2.7/EGG-INFO/dependency_links.txt b/morfeusz/wrappers/python2/EGG-INFO/dependency_links.txt
index 8b13789..8b13789 100644
--- a/morfeusz/wrappers/python2/morfeusz2-0.4.0-py2.7/EGG-INFO/dependency_links.txt
+++ b/morfeusz/wrappers/python2/EGG-INFO/dependency_links.txt
diff --git a/morfeusz/wrappers/python2/morfeusz2-0.4.0-py2.7/EGG-INFO/native_libs.txt b/morfeusz/wrappers/python2/EGG-INFO/native_libs.txt
index 869b695..869b695 100644
--- a/morfeusz/wrappers/python2/morfeusz2-0.4.0-py2.7/EGG-INFO/native_libs.txt
+++ b/morfeusz/wrappers/python2/EGG-INFO/native_libs.txt
diff --git a/morfeusz/wrappers/python2/morfeusz2-0.4.0-py2.7/EGG-INFO/not-zip-safe b/morfeusz/wrappers/python2/EGG-INFO/not-zip-safe
index 8b13789..8b13789 100644
--- a/morfeusz/wrappers/python2/morfeusz2-0.4.0-py2.7/EGG-INFO/not-zip-safe
+++ b/morfeusz/wrappers/python2/EGG-INFO/not-zip-safe
diff --git a/morfeusz/wrappers/python2/morfeusz2-0.4.0-py2.7/EGG-INFO/top_level.txt b/morfeusz/wrappers/python2/EGG-INFO/top_level.txt
index 73d8d44..73d8d44 100644
--- a/morfeusz/wrappers/python2/morfeusz2-0.4.0-py2.7/EGG-INFO/top_level.txt
+++ b/morfeusz/wrappers/python2/EGG-INFO/top_level.txt
diff --git a/morfeusz/wrappers/python2/morfeusz2-0.4.0-py2.7/EGG-INFO/PKG-INFO b/morfeusz/wrappers/python2/morfeusz2-0.4.0-py2.7/EGG-INFO/PKG-INFO
deleted file mode 100644
index 85ba8ab..0000000
--- a/morfeusz/wrappers/python2/morfeusz2-0.4.0-py2.7/EGG-INFO/PKG-INFO
+++ /dev/null
@@ -1,10 +0,0 @@
-Metadata-Version: 1.0
-Name: morfeusz2
-Version: 0.4.0
-Summary: Python bindings for Morfeusz
-Home-page: UNKNOWN
-Author: Michał Lenart
-Author-email: michal.lenart@ipipan.waw.pl
-License: UNKNOWN
-Description: UNKNOWN
-Platform: UNKNOWN
diff --git a/morfeusz/wrappers/python3/CMakeLists.txt b/morfeusz/wrappers/python3/CMakeLists.txt
index 6fb264e..a377bca 100644
--- a/morfeusz/wrappers/python3/CMakeLists.txt
+++ b/morfeusz/wrappers/python3/CMakeLists.txt
@@ -6,8 +6,7 @@ set(Python_ADDITIONAL_VERSIONS 3.4)
 FIND_PACKAGE (PythonLibs ${PY} REQUIRED)
 #~ INCLUDE (${SWIG_USE_FILE})
 
-set (PY3MORFEUSZ_VERSION "0.4.0")
-
+set (PY3MORFEUSZ_VERSION "${Morfeusz_LIB_VERSION}")
 # SWIG Java
 INCLUDE_DIRECTORIES (${PYTHON_INCLUDE_PATH})
 INCLUDE_DIRECTORIES (../..)
@@ -31,8 +30,9 @@ set (OUTPUT      "${CMAKE_CURRENT_BINARY_DIR}/build")
 
 configure_file (${SETUP_PY_IN} ${SETUP_PY})
 
-file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/morfeusz2-0.4.0-py3.6" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
-file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/morfeusz2-0.4.0-py3.7" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
+set (EGG_NAME "morfeusz2-${PY3MORFEUSZ_VERSION}-py${PY}")
+file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${EGG_NAME}")
+file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/EGG-INFO" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/${EGG_NAME}/")
 
 add_custom_target (generate_python3_setup_file
         DEPENDS ${SETUP_PY})
@@ -53,11 +53,16 @@ if (UNIX)
         COMMAND python3 ${SETUP_PY} install --home=${CMAKE_INSTALL_PREFIX}
         DEPENDS py3morfeusz
     )
-    add_custom_target (package-python3-bin
-        COMMAND python3 ${SETUP_PY} bdist_egg -d "${TARGET_DIR}" --plat-name "${CMAKE_SYSTEM_NAME}-${ARCHITECTURE}"
+    add_custom_target (package-python3-egg
+      COMMAND python3 ${SETUP_PY} bdist_egg -d "${TARGET_DIR}" --plat-name "${CMAKE_SYSTEM_NAME}-${ARCHITECTURE}"
+        DEPENDS py3morfeusz
+    )
+    add_custom_target (package-python3-whl
+      COMMAND python3 ${SETUP_PY} bdist_wheel -d "${TARGET_DIR}"
+      #--plat-name "${CMAKE_SYSTEM_NAME}-${ARCHITECTURE}"
         DEPENDS py3morfeusz
     )
-    set (PACKAGE_DEPENDS "package-python3-bin")
+    set (PACKAGE_DEPENDS package-python3-egg package-python3-whl)
     
     if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
       if (BUILT_ON)
@@ -83,7 +88,17 @@ if (UNIX)
         list (APPEND PACKAGE_DEPENDS package-python3-deb)
     endif ()
     add_custom_target (package-python3
-        DEPENDS py3morfeusz ${PACKAGE_DEPENDS})
+      DEPENDS py3morfeusz ${PACKAGE_DEPENDS})
+elseif (${CMAKE_SYSTEM_NAME} MATCHES "Windows" AND CMAKE_CROSSCOMPILING)
+    add_custom_target (package-python3-egg-info
+      COMMAND python3 ${SETUP_PY} egg_info
+      DEPENDS generate_python3_wrapper generate_python3_setup_file libmorfeusz
+    )
+elseif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin" AND CMAKE_CROSSCOMPILING)
+    add_custom_target (package-python3-egg-info
+      COMMAND python3 ${SETUP_PY} egg_info
+      DEPENDS generate_python3_wrapper generate_python3_setup_file libmorfeusz
+    )
 elseif (${CMAKE_SYSTEM_NAME} MATCHES "Windows" AND NOT CMAKE_CROSSCOMPILING)
     add_custom_target (package-python3-win-installer
         COMMAND python3 ${SETUP_PY} bdist_wininst -d ${TARGET_DIR} --plat-name "${CMAKE_SYSTEM_NAME}-${ARCHITECTURE}"
diff --git a/morfeusz/wrappers/python3/morfeusz2-0.4.0-py3.6/EGG-INFO/SOURCES.txt b/morfeusz/wrappers/python3/EGG-INFO/SOURCES.txt
index e69de29..e69de29 100644
--- a/morfeusz/wrappers/python3/morfeusz2-0.4.0-py3.6/EGG-INFO/SOURCES.txt
+++ b/morfeusz/wrappers/python3/EGG-INFO/SOURCES.txt
diff --git a/morfeusz/wrappers/python3/morfeusz2-0.4.0-py3.6/EGG-INFO/dependency_links.txt b/morfeusz/wrappers/python3/EGG-INFO/dependency_links.txt
index 8b13789..8b13789 100644
--- a/morfeusz/wrappers/python3/morfeusz2-0.4.0-py3.6/EGG-INFO/dependency_links.txt
+++ b/morfeusz/wrappers/python3/EGG-INFO/dependency_links.txt
diff --git a/morfeusz/wrappers/python3/morfeusz2-0.4.0-py3.6/EGG-INFO/native_libs.txt b/morfeusz/wrappers/python3/EGG-INFO/native_libs.txt
index 869b695..869b695 100644
--- a/morfeusz/wrappers/python3/morfeusz2-0.4.0-py3.6/EGG-INFO/native_libs.txt
+++ b/morfeusz/wrappers/python3/EGG-INFO/native_libs.txt
diff --git a/morfeusz/wrappers/python3/morfeusz2-0.4.0-py3.6/EGG-INFO/not-zip-safe b/morfeusz/wrappers/python3/EGG-INFO/not-zip-safe
index 8b13789..8b13789 100644
--- a/morfeusz/wrappers/python3/morfeusz2-0.4.0-py3.6/EGG-INFO/not-zip-safe
+++ b/morfeusz/wrappers/python3/EGG-INFO/not-zip-safe
diff --git a/morfeusz/wrappers/python3/morfeusz2-0.4.0-py3.6/EGG-INFO/top_level.txt b/morfeusz/wrappers/python3/EGG-INFO/top_level.txt
index 73d8d44..73d8d44 100644
--- a/morfeusz/wrappers/python3/morfeusz2-0.4.0-py3.6/EGG-INFO/top_level.txt
+++ b/morfeusz/wrappers/python3/EGG-INFO/top_level.txt
diff --git a/morfeusz/wrappers/python3/morfeusz2-0.4.0-py3.6/EGG-INFO/PKG-INFO b/morfeusz/wrappers/python3/morfeusz2-0.4.0-py3.6/EGG-INFO/PKG-INFO
deleted file mode 100644
index 85ba8ab..0000000
--- a/morfeusz/wrappers/python3/morfeusz2-0.4.0-py3.6/EGG-INFO/PKG-INFO
+++ /dev/null
@@ -1,10 +0,0 @@
-Metadata-Version: 1.0
-Name: morfeusz2
-Version: 0.4.0
-Summary: Python bindings for Morfeusz
-Home-page: UNKNOWN
-Author: Michał Lenart
-Author-email: michal.lenart@ipipan.waw.pl
-License: UNKNOWN
-Description: UNKNOWN
-Platform: UNKNOWN
diff --git a/morfeusz/wrappers/python3/morfeusz2-0.4.0-py3.7/EGG-INFO/PKG-INFO b/morfeusz/wrappers/python3/morfeusz2-0.4.0-py3.7/EGG-INFO/PKG-INFO
deleted file mode 100644
index 85ba8ab..0000000
--- a/morfeusz/wrappers/python3/morfeusz2-0.4.0-py3.7/EGG-INFO/PKG-INFO
+++ /dev/null
@@ -1,10 +0,0 @@
-Metadata-Version: 1.0
-Name: morfeusz2
-Version: 0.4.0
-Summary: Python bindings for Morfeusz
-Home-page: UNKNOWN
-Author: Michał Lenart
-Author-email: michal.lenart@ipipan.waw.pl
-License: UNKNOWN
-Description: UNKNOWN
-Platform: UNKNOWN
diff --git a/morfeusz/wrappers/python3/morfeusz2-0.4.0-py3.7/EGG-INFO/SOURCES.txt b/morfeusz/wrappers/python3/morfeusz2-0.4.0-py3.7/EGG-INFO/SOURCES.txt
deleted file mode 100644
index e69de29..0000000
--- a/morfeusz/wrappers/python3/morfeusz2-0.4.0-py3.7/EGG-INFO/SOURCES.txt
+++ /dev/null
diff --git a/morfeusz/wrappers/python3/morfeusz2-0.4.0-py3.7/EGG-INFO/dependency_links.txt b/morfeusz/wrappers/python3/morfeusz2-0.4.0-py3.7/EGG-INFO/dependency_links.txt
deleted file mode 100644
index 8b13789..0000000
--- a/morfeusz/wrappers/python3/morfeusz2-0.4.0-py3.7/EGG-INFO/dependency_links.txt
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/morfeusz/wrappers/python3/morfeusz2-0.4.0-py3.7/EGG-INFO/native_libs.txt b/morfeusz/wrappers/python3/morfeusz2-0.4.0-py3.7/EGG-INFO/native_libs.txt
deleted file mode 100644
index 869b695..0000000
--- a/morfeusz/wrappers/python3/morfeusz2-0.4.0-py3.7/EGG-INFO/native_libs.txt
+++ /dev/null
@@ -1 +0,0 @@
-_morfeusz2.so
diff --git a/morfeusz/wrappers/python3/morfeusz2-0.4.0-py3.7/EGG-INFO/not-zip-safe b/morfeusz/wrappers/python3/morfeusz2-0.4.0-py3.7/EGG-INFO/not-zip-safe
deleted file mode 100644
index 8b13789..0000000
--- a/morfeusz/wrappers/python3/morfeusz2-0.4.0-py3.7/EGG-INFO/not-zip-safe
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/morfeusz/wrappers/python3/morfeusz2-0.4.0-py3.7/EGG-INFO/top_level.txt b/morfeusz/wrappers/python3/morfeusz2-0.4.0-py3.7/EGG-INFO/top_level.txt
deleted file mode 100644
index 73d8d44..0000000
--- a/morfeusz/wrappers/python3/morfeusz2-0.4.0-py3.7/EGG-INFO/top_level.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-_morfeusz2
-morfeusz2