private int findNextSizedSlotAndPopulate(int width, int height) {
        for (int u1 = 0; u1 < this.slotsU - width + 1; u1++) {
            for (int v1 = 0; v1 < this.slotsV - height + 1; v1++) {
                boolean empty = true;

                for (int u2 = u1; u2 < u1 + width; u2++) {
                    for (int v2 = v1; v2 < v1 + height; v2++) {
                        if (this.slots[u2 + v2 * this.slotsU] == true) {
                            empty = false;
                        }
                    }
                }

                if (empty) {
                    for (int u2 = u1; u2 < u1 + width; u2++) {
                        for (int v2 = v1; v2 < v1 + height; v2++) {
                            this.slots[u2 + v2 * this.slotsU] = true;
                        }
                    }

                    return u1 + v1 * this.slotsU;
                }
            }
        }

        return -1;
    }