diff --git a/entry.sh b/entry.sh
index 3d472f6..035c589 100755
--- a/entry.sh
+++ b/entry.sh
@@ -1,40 +1,54 @@
 #!/bin/bash
 
+function user_install(){
+	wget --show-progress -qO ./toolbox.tar.gz https://download.jetbrains.com/toolbox/jetbrains-toolbox-1.20.7940.tar.gz
+	
+	TOOLBOX_TEMP_DIR=$(mktemp -d)
+
+	tar -C "$TOOLBOX_TEMP_DIR" -xf toolbox.tar.gz
+	rm ./toolbox.tar.gz
+
+	"$TOOLBOX_TEMP_DIR"/*/jetbrains-toolbox
+	
+	rm -r "$TOOLBOX_TEMP_DIR"
+
+}
+
 
 function first_stage(){
 	set -e
 	echo foo first_stage
-		
+
 	echo -n "hostname: "
 	read -s hostname_in
 	export NEW_HOSTNAME=$hostname_in
 	echo
-	
+
 	echo -n "luks password: "
 	read -s luks_password_in
 	export LUKS_PASSWORD=$luks_password_in
 	echo
-	
+
 	echo -n "root password: "
 	read -s root_password_in
 	export ROOT_PASSWORD=$root_password_in
 	echo
-	
+
 	echo -n "user password: "
 	read -s user_password_in
 	export USER_PASSWORD=$user_password_in
 	echo
-	
+
 	lsblk -ftpo NAME,FSTYPE,LABEL,UUID,FSAVAIL,MOUNTPOINT
 	select DEVICE in $(lsblk -frpno NAME); do
 	echo using $DEVICE
 	break
 	done
-	
+
 	export DEVICE
-	
+
 	apt install -y debootstrap cryptsetup btrfs-progs lvm2
-	
+
 	if [ -d /dev/vg0 ]; then
 		mount | grep target | awk '{print $3}'| sort -r | while read LINE; do
 			umount -l $LINE;
@@ -44,13 +58,13 @@ function first_stage(){
 		fi
 		vgchange -an /dev/vg0
 	fi
-	
+
 	if [ -b /dev/mapper/cryptlvm ]; then
 		cryptsetup luksClose cryptlvm
 	fi
-	
+
 	wipefs -a ${DEVICE}
-	
+
 	(
 	echo o
 	echo n
@@ -65,10 +79,10 @@ function first_stage(){
 	echo 
 	echo w
 	) | fdisk ${DEVICE}
-	
+
 	echo mkfs.ext4 ${DEVICE}1
 	yes | mkfs.ext4 ${DEVICE}1
-	
+
 	(
 	echo $LUKS_PASSWORD
 	echo $LUKS_PASSWORD	
@@ -77,30 +91,30 @@ function first_stage(){
 	unset LUKS_PASSWORD
 	pvcreate /dev/mapper/cryptlvm
 	vgcreate vg0 /dev/mapper/cryptlvm
-	
+
 	export LVM_SIZE=$(dev_size /dev/mapper/cryptlvm)
-	
+
 	export SWAP_SIZE=$(($(mem_size)/1024/1024))
 	export ROOT_SIZE=$(($LVM_SIZE/1024/1024-$SWAP_SIZE-512))
-	
+
 	echo lvcreate /dev/vg0 --name=root --size=${ROOT_SIZE}M
 	lvcreate /dev/vg0 --name=root --size=${ROOT_SIZE}M
 	yes | mkfs.btrfs /dev/vg0/root
-	
+
 	echo lvcreate /dev/vg0 --name=swap --size=${SWAP_SIZE}M
 	lvcreate /dev/vg0 --name=swap --size=${SWAP_SIZE}M
 	mkswap /dev/vg0/swap
 	swapon /dev/vg0/swap
-	
+
 	echo mount /dev/vg0/root $TARGET
 	mount /dev/vg0/root $TARGET
-	
+
 	echo debootstrap sid $TARGET
 	debootstrap sid $TARGET
-	
+
 	mount ${DEVICE}1 $TARGET/boot
 	echo mount ${DEVICE}1 $TARGET/boot
-	
+
 	genfstab -U $TARGET | tee $TARGET/etc/fstab
 	UUID=$(lsblk -lpo NAME,UUID | grep ${DEVICE}2 | awk '{print $2}')
 	echo cryptlvm UUID=${UUID} none luks > $TARGET/etc/crypttab
@@ -134,7 +148,7 @@ function second_stage(){
 	echo
 	) | adduser jedi
 	unset USER_PASSWORD
-	
+
 	HOME=/home/jedi
 	btrfs subvolume snapshot / /snap/$(date +%Y-%m-%d_user_gui)
 	apt install -y git virt-manager telegram-desktop firefox thunderbird geany vlc pidgin inkscape meld kicad blender
@@ -143,13 +157,16 @@ function second_stage(){
 	chown -R jedi:jedi $HOME
 	chsh --shell /bin/zsh jedi
 	
+	export -f user_install
+	su jedi -c "bash -c user_install"
+
 	echo second_stage done
 }
 
 
 function post_install_stage(){
 	sleep 0.5
-    mount | grep target | awk '{print $3}'| sort -r | while read LINE; do
-        umount -l $LINE;
-    done
+	mount | grep target | awk '{print $3}'| sort -r | while read LINE; do
+		umount -l $LINE;
+	done
 }