diff --git a/.gitattributes b/.gitattributes
deleted file mode 100644
index 00a51aff5e5a83d6313f3bd15fadc601a205b66f..0000000000000000000000000000000000000000
--- a/.gitattributes
+++ /dev/null
@@ -1,6 +0,0 @@
-#
-# https://help.github.com/articles/dealing-with-line-endings/
-#
-# These are explicitly windows files and should use crlf
-*.bat           text eol=crlf
-
diff --git a/build.gradle b/build.gradle
deleted file mode 100644
index 186783bae21680ed8abda7e59b7ddc9992ae451c..0000000000000000000000000000000000000000
--- a/build.gradle
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * This file was generated by the Gradle 'init' task.
- *
- * This generated file contains a sample Java project to get you started.
- * For more details take a look at the Java Quickstart chapter in the Gradle
- * User Manual available at https://docs.gradle.org/6.3/userguide/tutorial_java_projects.html
- */
-
-plugins {
-    // Apply the java plugin to add support for Java
-    id 'java'
-
-    // Apply the application plugin to add support for building a CLI application.
-    id 'application'
-}
-
-repositories {
-    // Use jcenter for resolving dependencies.
-    // You can declare any Maven/Ivy/file repository here.
-    jcenter()
-}
-
-dependencies {
-    // This dependency is used by the application.
-    implementation 'com.google.guava:guava:28.2-jre'
-
-    // Use JUnit Jupiter API for testing.
-    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.0'
-
-    // Use JUnit Jupiter Engine for testing.
-    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.6.0'
-}
-
-application {
-    // Define the main class for the application.
-    mainClassName = 'io.fp.shoes.App'
-}
-
-test {
-    // Use junit platform for unit tests
-    useJUnitPlatform()
-}
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
deleted file mode 100644
index 490fda8577df6c95960ba7077c43220e5bb2c0d9..0000000000000000000000000000000000000000
Binary files a/gradle/wrapper/gradle-wrapper.jar and /dev/null differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
deleted file mode 100644
index 00e33edef6936b1ada8721cff42201db8c9d8675..0000000000000000000000000000000000000000
--- a/gradle/wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.1-bin.zip
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
diff --git a/gradlew b/gradlew
deleted file mode 100644
index 2fe81a7d95e4f9ad2c9b2a046707d36ceb3980b3..0000000000000000000000000000000000000000
--- a/gradlew
+++ /dev/null
@@ -1,183 +0,0 @@
-#!/usr/bin/env sh
-
-#
-# Copyright 2015 the original author or authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-##############################################################################
-##
-##  Gradle start up script for UN*X
-##
-##############################################################################
-
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
-    ls=`ls -ld "$PRG"`
-    link=`expr "$ls" : '.*-> \(.*\)$'`
-    if expr "$link" : '/.*' > /dev/null; then
-        PRG="$link"
-    else
-        PRG=`dirname "$PRG"`"/$link"
-    fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >/dev/null
-APP_HOME="`pwd -P`"
-cd "$SAVED" >/dev/null
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
-
-warn () {
-    echo "$*"
-}
-
-die () {
-    echo
-    echo "$*"
-    echo
-    exit 1
-}
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-nonstop=false
-case "`uname`" in
-  CYGWIN* )
-    cygwin=true
-    ;;
-  Darwin* )
-    darwin=true
-    ;;
-  MINGW* )
-    msys=true
-    ;;
-  NONSTOP* )
-    nonstop=true
-    ;;
-esac
-
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
-
-# Determine the Java command to use to start the JVM.
-if [ -n "$JAVA_HOME" ] ; then
-    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
-        # IBM's JDK on AIX uses strange locations for the executables
-        JAVACMD="$JAVA_HOME/jre/sh/java"
-    else
-        JAVACMD="$JAVA_HOME/bin/java"
-    fi
-    if [ ! -x "$JAVACMD" ] ; then
-        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-    fi
-else
-    JAVACMD="java"
-    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-fi
-
-# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
-    MAX_FD_LIMIT=`ulimit -H -n`
-    if [ $? -eq 0 ] ; then
-        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
-            MAX_FD="$MAX_FD_LIMIT"
-        fi
-        ulimit -n $MAX_FD
-        if [ $? -ne 0 ] ; then
-            warn "Could not set maximum file descriptor limit: $MAX_FD"
-        fi
-    else
-        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
-    fi
-fi
-
-# For Darwin, add options to specify how the application appears in the dock
-if $darwin; then
-    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
-fi
-
-# For Cygwin or MSYS, switch paths to Windows format before running java
-if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
-    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
-    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
-    JAVACMD=`cygpath --unix "$JAVACMD"`
-
-    # We build the pattern for arguments to be converted via cygpath
-    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
-    SEP=""
-    for dir in $ROOTDIRSRAW ; do
-        ROOTDIRS="$ROOTDIRS$SEP$dir"
-        SEP="|"
-    done
-    OURCYGPATTERN="(^($ROOTDIRS))"
-    # Add a user-defined pattern to the cygpath arguments
-    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
-        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
-    fi
-    # Now convert the arguments - kludge to limit ourselves to /bin/sh
-    i=0
-    for arg in "$@" ; do
-        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
-        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
-
-        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
-            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
-        else
-            eval `echo args$i`="\"$arg\""
-        fi
-        i=`expr $i + 1`
-    done
-    case $i in
-        0) set -- ;;
-        1) set -- "$args0" ;;
-        2) set -- "$args0" "$args1" ;;
-        3) set -- "$args0" "$args1" "$args2" ;;
-        4) set -- "$args0" "$args1" "$args2" "$args3" ;;
-        5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
-        6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
-        7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
-        8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
-        9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
-    esac
-fi
-
-# Escape application args
-save () {
-    for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
-    echo " "
-}
-APP_ARGS=`save "$@"`
-
-# Collect all arguments for the java command, following the shell quoting and substitution rules
-eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
-
-exec "$JAVACMD" "$@"
diff --git a/gradlew.bat b/gradlew.bat
deleted file mode 100644
index 62bd9b9ccefea2b65ae41e5d9a545e2021b90a1d..0000000000000000000000000000000000000000
--- a/gradlew.bat
+++ /dev/null
@@ -1,103 +0,0 @@
-@rem
-@rem Copyright 2015 the original author or authors.
-@rem
-@rem Licensed under the Apache License, Version 2.0 (the "License");
-@rem you may not use this file except in compliance with the License.
-@rem You may obtain a copy of the License at
-@rem
-@rem      https://www.apache.org/licenses/LICENSE-2.0
-@rem
-@rem Unless required by applicable law or agreed to in writing, software
-@rem distributed under the License is distributed on an "AS IS" BASIS,
-@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-@rem See the License for the specific language governing permissions and
-@rem limitations under the License.
-@rem
-
-@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem
-@rem  Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Resolve any "." and ".." in APP_HOME to make it shorter.
-for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto init
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:init
-@rem Get command-line arguments, handling Windows variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
-
-:end
-@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega
diff --git a/settings.gradle b/settings.gradle
deleted file mode 100644
index 43621cc760e4afdf4cb9308dd5ac963f116b471d..0000000000000000000000000000000000000000
--- a/settings.gradle
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- * This file was generated by the Gradle 'init' task.
- *
- * The settings file is used to specify which projects to include in your build.
- *
- * Detailed information about configuring a multi-project build in Gradle can be found
- * in the user manual at https://docs.gradle.org/6.3/userguide/multi_project_builds.html
- */
-
-rootProject.name = 'campus'
diff --git a/src/main/java/io/fp/shoes/BoxException.java b/src/main/java/io/fp/shoes/BoxException.java
deleted file mode 100644
index 910d955d131ba03d1d5416fae90c978238976bba..0000000000000000000000000000000000000000
--- a/src/main/java/io/fp/shoes/BoxException.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package io.fp.shoes;
-
-public class BoxException extends Exception {
-
-	public BoxException() {
-		super("Something went wrong.");
-	}
-
-	public BoxException(String arg0) {
-		super(arg0);
-	}
-
-	public BoxException(Throwable cause) {
-		super(cause);
-	}
-
-	public BoxException(String message, Throwable cause) {
-		super(message, cause);
-	}
-
-	public BoxException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
-		super(message, cause, enableSuppression, writableStackTrace);
-	}
-
-}
diff --git a/src/main/java/io/fp/shoes/Shelf.java b/src/main/java/io/fp/shoes/Shelf.java
deleted file mode 100644
index de9c7f6ece410f52d391c0e0c02feed3976aca48..0000000000000000000000000000000000000000
--- a/src/main/java/io/fp/shoes/Shelf.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package io.fp.shoes;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class Shelf {
-	
-	private ArrayList<ArrayList<ShoeBox<? extends Shoes>>> shelf;
-	private int height;
-	private int width;
-	
-	public Shelf(int height, int width) {
-		this.height = height;
-		this.width = width;
-		shelf = new ArrayList<>();
-		for(int i = 0; i < height; i++) {
-			shelf.add(new ArrayList<ShoeBox<? extends Shoes>>());
-			for(int j = 0; j < width; j++) {
-				shelf.get(i).add(null); //"Leere" Plaetze 
-			}			
-		}
-	}
-	
-	
-	public void addBox(int x, int y, ShoeBox<? extends Shoes> box) throws BoxException {
-		if(x<0 || y<0|| x >= this.height || y >= this.width) throw new IndexOutOfBoundsException("There is no such place in the shelf!");
-		if(shelf.get(x).get(y) != null) throw new BoxException("There is already a different box in " + x +"/" + y + "!");
-		shelf.get(x).set(y, box);
-	}
-	
-	public void removeBox(int x, int y) throws BoxException {
-		if(x<0 || y<0|| x >= this.height || y >= this.width) throw new IndexOutOfBoundsException("There is no such place in the shelf!");
-		if(shelf.get(x).get(y) == null) throw new BoxException("No item to remove in " + x +"/" + y + "!");
-		shelf.get(x).set(y, null);
-	}
-	
-	public ShoeBox<? extends Shoes> get(int x, int y) {
-		return shelf.get(x).get(y);
-	}
-	
-	@Override
-	public String toString() {
-		StringBuilder sb = new StringBuilder();
-		for(List<ShoeBox<? extends Shoes>> shelfY : shelf) {
-			for(ShoeBox<? extends Shoes> box : shelfY) {		
-				sb.append("|" + (box==null?"----free----":box.toString()) + "|");
-			}
-			sb.append('\n');
-
-		}
-		return sb.toString();
-	}
-	
-}
diff --git a/src/main/java/io/fp/shoes/App.java b/src/shoes/App.java
similarity index 84%
rename from src/main/java/io/fp/shoes/App.java
rename to src/shoes/App.java
index a8f846a5dfb4e86da2176db56153633171b3d623..d87b89ef2d1b28989465ff68c186d80872a0b0fd 100644
--- a/src/main/java/io/fp/shoes/App.java
+++ b/src/shoes/App.java
@@ -1,12 +1,11 @@
-package io.fp.shoes;
+package shoes;
 
 public class App {
-
 	public static void main(String[] args) throws BoxException {
-		Sneakers sneakers = new Sneakers("AirMax", 42.5);
-		Sneakers sneakers2 = new Sneakers("AirForce1", 44.0);
-		Boots boots = new Boots("Stiefel braun", 39.0);
-		Boots boots2 = new Boots("Stiefel schwarz", 37.5);
+		Sneakers sneakers = new Sneakers("Blue Sneakers", 42.5);
+		Sneakers sneakers2 = new Sneakers("White Sneakers", 44.0);
+		Boots boots = new Boots("Brown Boots", 39.0);
+		Boots boots2 = new Boots("Black Boots", 37.5);
 
 		ShoeBox<Boots> sb1 = new ShoeBox<>();
 		ShoeBox<Sneakers> sb2 = new ShoeBox<>();
@@ -18,16 +17,11 @@ public class App {
 		sb3.putObjectInBox(boots2);
 		sb4.putObjectInBox(sneakers2);
 		
-		
 		System.out.println(sb1);
 		System.out.println(sb2);
 		System.out.println("\n_____________________________________________\n");
 		
-		
-		/*
-		 * Aufgabenteil d)
-		 */
-		
+		// task d)
 		System.out.println("Create shelf with x=3 y=5");
 		Shelf shelf = new Shelf(3,5);
 		
@@ -43,15 +37,12 @@ public class App {
 		System.out.println("Add sb4 to 2/1");
 		shelf.addBox(2,1,sb4);
 		
-		
 		System.out.println("\nContents of shelf:");
 		System.out.println(shelf);
 
-
 		//shelf.addBox(42, 32, sb1);  //IndexOutOfBoundsException
 		//System.out.println("Add sb2 to 2/2 to throw an Exception");
 		//shelf.addBox(2,2,sb2); //Exception
-
 		
 		//Removing boxes from shelf
 		System.out.println("Remove Box from 2/2");
@@ -64,5 +55,4 @@ public class App {
 		System.out.println("\nContents of shelf after removing:");
 		System.out.println(shelf);
 	}
-
 }
diff --git a/src/main/java/io/fp/shoes/Boots.java b/src/shoes/Boots.java
similarity index 81%
rename from src/main/java/io/fp/shoes/Boots.java
rename to src/shoes/Boots.java
index 1b626d60c98be937944bcccc624687838cd1036b..152d834d927366e71a4728920486df45b338dc13 100644
--- a/src/main/java/io/fp/shoes/Boots.java
+++ b/src/shoes/Boots.java
@@ -1,9 +1,7 @@
-package io.fp.shoes;
+package shoes;
 
 public class Boots extends Shoes {
-
 	public Boots(String name, double size) {
 		super(name, size);
 	}
-
 }
diff --git a/src/main/java/io/fp/shoes/Box.java b/src/shoes/Box.java
similarity index 75%
rename from src/main/java/io/fp/shoes/Box.java
rename to src/shoes/Box.java
index b6d531a83dce98cf51cc3c915f50e94bae44e5ac..f54f67d4b6fd26704c271d6884aa1544e0190236 100644
--- a/src/main/java/io/fp/shoes/Box.java
+++ b/src/shoes/Box.java
@@ -1,31 +1,30 @@
-package io.fp.shoes;
+package shoes;
 
-public abstract class Box <T>{
+public abstract class Box<T> {
 	private T content;
-	
+
 	public Box() {
 		super();
 	}
-	
+
 	public Box(T content) {
 		this.content = content;
 	}
-	
+
 	public void putObjectInBox(T obj) throws BoxException {
-		if(content == null) {
-			content=obj;
-		}
-		else {
+		if (content == null) {
+			content = obj;
+		} else {
 			throw new BoxException("Box is full!");
 		}
 	}
-	
+
 	public T removeObjectInBox() {
 		T temp = content;
-		content=null;
+		content = null;
 		return temp;
 	}
-	
+
 	public T getObjectInBox() {
 		return content;
 	}
@@ -34,5 +33,4 @@ public abstract class Box <T>{
 	public String toString() {
 		return "[" + content + "]";
 	}
-	
-}
+}
\ No newline at end of file
diff --git a/src/shoes/BoxException.java b/src/shoes/BoxException.java
new file mode 100644
index 0000000000000000000000000000000000000000..2e03a289b04b9c281227ea4d8991226da5d9710a
--- /dev/null
+++ b/src/shoes/BoxException.java
@@ -0,0 +1,7 @@
+package shoes;
+
+public class BoxException extends Exception {
+	public BoxException(String msg) {
+		super(msg);
+	}
+}
diff --git a/src/shoes/Shelf.java b/src/shoes/Shelf.java
new file mode 100644
index 0000000000000000000000000000000000000000..9b9a7f068c30160a8cddc979b59d7ed030478871
--- /dev/null
+++ b/src/shoes/Shelf.java
@@ -0,0 +1,55 @@
+package shoes;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class Shelf {
+	private ArrayList<ArrayList<ShoeBox<? extends Shoes>>> shelf;
+	private int height;
+	private int width;
+
+	public Shelf(int height, int width) {
+		this.height = height;
+		this.width = width;
+		shelf = new ArrayList<>();
+		for (int i = 0; i < height; i++) {
+			shelf.add(new ArrayList<ShoeBox<? extends Shoes>>());
+			for (int j = 0; j < width; j++) {
+				shelf.get(i).add(null); // add empty slots
+			}
+		}
+	}
+
+	public void addBox(int x, int y, ShoeBox<? extends Shoes> box) throws BoxException {
+		if (x < 0 || y < 0 || x >= this.height || y >= this.width)
+			throw new IndexOutOfBoundsException("There is no such place in the shelf!");
+		if (shelf.get(x).get(y) != null)
+			throw new BoxException("There is already a different box in " + x + "/" + y + "!");
+		shelf.get(x).set(y, box);
+	}
+
+	public void removeBox(int x, int y) throws BoxException {
+		if (x < 0 || y < 0 || x >= this.height || y >= this.width)
+			throw new IndexOutOfBoundsException("There is no such place in the shelf!");
+		if (shelf.get(x).get(y) == null)
+			throw new BoxException("No item to remove in " + x + "/" + y + "!");
+		shelf.get(x).set(y, null);
+	}
+
+	public ShoeBox<? extends Shoes> get(int x, int y) {
+		return shelf.get(x).get(y);
+	}
+
+	@Override
+	public String toString() {
+		StringBuilder sb = new StringBuilder();
+		for (List<ShoeBox<? extends Shoes>> shelfY : shelf) {
+			for (ShoeBox<? extends Shoes> box : shelfY) {
+				sb.append("|" + (box == null ? "----free----" : box.toString()) + "|");
+			}
+			sb.append('\n');
+
+		}
+		return sb.toString();
+	}
+}
diff --git a/src/main/java/io/fp/shoes/ShoeBox.java b/src/shoes/ShoeBox.java
similarity index 84%
rename from src/main/java/io/fp/shoes/ShoeBox.java
rename to src/shoes/ShoeBox.java
index cc8be4de9d4efcd694a1dafc4c45f080e9d4509d..a6d6a2986962ea1e588550681ef0fb9d89c3095e 100644
--- a/src/main/java/io/fp/shoes/ShoeBox.java
+++ b/src/shoes/ShoeBox.java
@@ -1,7 +1,6 @@
-package io.fp.shoes;
+package shoes;
 
 public class ShoeBox<T extends Shoes> extends Box<T> {
-
 	public ShoeBox() {
 		super();
 	}
@@ -9,7 +8,4 @@ public class ShoeBox<T extends Shoes> extends Box<T> {
 	public ShoeBox(T content) {
 		super(content);
 	}
-	
-
-
 }
diff --git a/src/main/java/io/fp/shoes/Shoes.java b/src/shoes/Shoes.java
similarity index 91%
rename from src/main/java/io/fp/shoes/Shoes.java
rename to src/shoes/Shoes.java
index 3a3f8f505b17399558f931cefdbd72055d97ae52..5db623a35184cf3fcdee114b1fb01272b1d01f0b 100644
--- a/src/main/java/io/fp/shoes/Shoes.java
+++ b/src/shoes/Shoes.java
@@ -1,4 +1,4 @@
-package io.fp.shoes;
+package shoes;
 
 public abstract class Shoes {
 	private String name;
@@ -13,5 +13,4 @@ public abstract class Shoes {
 	public String toString() {
 		return "{" + name + ", " + size + "}";
 	}
-
 }
diff --git a/src/main/java/io/fp/shoes/Sneakers.java b/src/shoes/Sneakers.java
similarity index 82%
rename from src/main/java/io/fp/shoes/Sneakers.java
rename to src/shoes/Sneakers.java
index 0dd38c403f2aecffc3061f3693ae600d154b57de..81011f36bff31766beeaf8fa2fb351415cacc44a 100644
--- a/src/main/java/io/fp/shoes/Sneakers.java
+++ b/src/shoes/Sneakers.java
@@ -1,9 +1,7 @@
-package io.fp.shoes;
+package shoes;
 
 public class Sneakers extends Shoes {
-
 	public Sneakers(String name, double size) {
 		super(name, size);
 	}
-
 }
diff --git a/src/test/java/io/fp/shoes/shoeTest.java b/src/test/java/io/fp/shoes/shoeTest.java
deleted file mode 100644
index 38f8d1d980196aa5d458787ea361dc67f2b54782..0000000000000000000000000000000000000000
--- a/src/test/java/io/fp/shoes/shoeTest.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package io.fp.shoes;
-
-import static org.junit.jupiter.api.Assertions.assertThrows;
-
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-/**
- * shoeTest
- */
-public class shoeTest {
-
-    ShoeBox<Boots> box;
-
-    @BeforeEach
-    void setUp(){
-
-        box = new ShoeBox<Boots>(new Boots("boot", 42));
-
-    }
-
-    @Test
-    void boxTest(){
-
-        assertThrows(BoxException.class, ()->{
-
-            box.putObjectInBox(new Boots("antiboot", 42));
-        });
-    }
-}
\ No newline at end of file