diff --git a/.gitignore b/.gitignore
index 473e0e348315eb4b4cc98afc4e9a60832546e0e6..36987299f0ef0403c4aaa8bd9a9a970ec940de35 100644
--- a/.gitignore
+++ b/.gitignore
@@ -27,4 +27,5 @@ ehthumbs_vista.db
 $RECYCLE.BIN/
 *.stackdump
 [Dd]esktop.ini
-*.egg-info
\ No newline at end of file
+*.egg-info
+__pycache__/
\ No newline at end of file
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7f6908ed2d0a352aed1e16f936a8a1d5593cccd4..c2381e4d5f346d3a84edf4fb206ade3fa08267cc 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -12,24 +12,26 @@ find_package(pybind11 CONFIG REQUIRED)
 
 set(LIBRARY_NAME "b_asic")
 set(TARGET_NAME "_${LIBRARY_NAME}")
+
 if(NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY)
 	include(GNUInstallDirs)
 	set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_INSTALL_LIBDIR}")
 endif()
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
+set(CMAKE_PDB_OUTPUT_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
+set(CMAKE_PDB_OUTPUT_DIRECTORY_DEBUG "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
+set(CMAKE_PDB_OUTPUT_DIRECTORY_RELEASE "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
 
-add_library(
-	"${TARGET_NAME}" MODULE
-	"${CMAKE_CURRENT_SOURCE_DIR}/src/main.cpp"
-)
-add_library(
-	"${TARGET_NAME}:${TARGET_NAME}"
-	ALIAS "${TARGET_NAME}"
-)
-
-set_target_properties(
+pybind11_add_module(
 	"${TARGET_NAME}"
-	PROPERTIES
-		PREFIX ""
+	"${CMAKE_CURRENT_SOURCE_DIR}/src/main.cpp"
 )
 
 target_include_directories(
@@ -47,14 +49,14 @@ target_compile_options(
 	"${TARGET_NAME}"
 	PRIVATE
 		$<$<OR:$<CXX_COMPILER_ID:GNU>,$<CXX_COMPILER_ID:Clang>>:
-			-W -Wall -Wextra -Werror -Wno-psabi -fvisibility=hidden
+			-W -Wall -Wextra -Werror -Wno-psabi
 			$<$<CONFIG:Debug>:-g>
-			$<$<NOT:$<CONFIG:Debug>>:-O3>
+			$<$<NOT:$<CONFIG:Debug>>:-O3 -flto>
 		>
 		$<$<CXX_COMPILER_ID:MSVC>:
-			/W3 /WX /permissive- /utf-8
+			/W3 /WX /permissive- /utf-8 /bigobj
 			$<$<CONFIG:Debug>:/Od>
-			$<$<NOT:$<CONFIG:Debug>>:/Ot>
+			$<$<NOT:$<CONFIG:Debug>>:/Ot /GL /LTCG>
 		>
 )
 
@@ -62,7 +64,6 @@ target_link_libraries(
 	"${TARGET_NAME}"
 	PRIVATE
 		fmt::fmt-header-only
-		pybind11::module
 )
 
 add_custom_target(
diff --git a/LICENSE b/LICENSE
index 17010bd5c1e2eb344384a5fa1f4fa6bfc4b72e63..669ce41e6f7c3cc001e8f9bb88a86c0dfaf755d9 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
 MIT License
 
-Copyright (c) 2020 TDDD96
+Copyright (c) 2020 TDDD96 PUM4
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/README.md b/README.md
index 4917b55e937ac4e1a158f78ecce77e63d7e60cac..b36a5d82421b3c31455a2b69d8d9fc303e4c116e 100644
--- a/README.md
+++ b/README.md
@@ -43,26 +43,26 @@ cmake --build . --config Release
 The output gets written to `B-ASIC/build/lib`.
 
 ### Using setuptools to create a package
-How to create a package using setuptools.
+How to create a package using setuptools that can be installed using pip.
 
 #### Setup (Binary distribution)
 In `B-ASIC`:
 ```
 python3 setup.py bdist_wheel
 ```
-The output gets written to `B-ASIC/dist`.
+The output gets written to `B-ASIC/dist/b_asic-<version>-<python_tag>-<abi_tag>-<platform_tag>.whl`.
 
 #### Setup (Source distribution)
 In `B-ASIC`:
 ```
 python3 setup.py sdist
 ```
-The output gets written to `B-ASIC/dist`.
+The output gets written to `B-ASIC/dist/b-asic-<version>.tar.gz`.
 
 #### Installation (Binary distribution)
 In `B-ASIC`:
 ```
-python3 -m pip install b_asic-<version>-<cpver>-<cpver>_<arch>.whl
+python3 -m pip install b_asic-<version>-<python_tag>-<abi_tag>-<platform_tag>.whl
 ```
 
 #### Installation (Source distribution)