public void sellMaterial() {
        //if reached destinationColonyId of Material in Cart
        if(this.getCart().getMaterials().isEmpty() == false) {
            int materialDest = this.getCart().getMaterials().get(0).getDestinationColonyId();
            if(super.getCurrentColonyId() == materialDest) {
                //wait until materialDest Colony's Depot has sufficient capacity
                while(this.getColonies().get(materialDest).getDepot().getCurrentCapacity() + this.getCart().getMaterials().get(0).getWeight() > this.getColonies().get(materialDest).getDepot().getMaxCapacity()) {
                    try {
                        Thread.currentThread().sleep(100);
                    } catch (InterruptedException ex) {
                        Logger.getLogger(Trader.class.getName()).log(Level.SEVERE, null, ex);
                    }
                }
                //wait until Colony has sufficient amountOfGold
                while(this.getColonies().get(materialDest).getAmountOfGold() < this.getCart().getMaterials().get(0).getPrice()) {
                    try {
                        Thread.currentThread().sleep(100);
                    } catch (InterruptedException ex) {
                        Logger.getLogger(Trader.class.getName()).log(Level.SEVERE, null, ex);
                    }
                }
                //sell Material:
                try {
                    Thread.currentThread().sleep(100);
                } catch (InterruptedException ex) {
                    Logger.getLogger(Trader.class.getName()).log(Level.SEVERE, null, ex);
                }
                synchronized(this.getColonies().get(materialDest)) {
                    //substract Material's price from materialDest Colony's amountOfGold
                    this.getColonies().get(materialDest).setAmountOfGold(this.getColonies().get(materialDest).getAmountOfGold() - this.getCart().getMaterials().get(0).getPrice());
                    //add Material's price to mother Colony amountOfGold
                    this.getColonies().get(this.getMotherColonyId()).setAmountOfGold(this.getColonies().get(this.getMotherColonyId()).getAmountOfGold() + this.getCart().getMaterials().get(0).getPrice());
                    //change materialDest Colony's depot currentCapacity
                    this.getColonies().get(materialDest).getDepot().setCurrentCapacity(this.getColonies().get(materialDest).getDepot().getCurrentCapacity() + this.getCart().getMaterials().get(0).getWeight());
                    //add Material to materialDest Colony's depot
                    synchronized(this.getColonies().get(materialDest).getDepot().getMaterials()) {
                        this.getColonies().get(materialDest).getDepot().getMaterials().add(this.getCart().getMaterials().get(0));
                    }
                    //remove it from Cart:
                    //change Cart's current capacity
                    this.getCart().setCurrentCapacity(this.getCart().getCurrentCapacity() - this.getCart().getMaterials().get(0).getWeight());
                    this.getCart().getMaterials().remove(0);
                    this.updateVelocity();
                }
            } else 
                System.out.println("Something wrong - couldn't sell Material!");
        }
    }