public Board(JFrame window, boolean fullscreen, int windowWidth, int windowHeight, int bitDepth) throws IOException {
        
        myWindow = window;
        isFullscreen = fullscreen;
        displayMode = new DisplayMode(windowWidth, windowHeight, bitDepth, DisplayMode.REFRESH_RATE_UNKNOWN);
        if(windowWidth != 0) screenWidth = windowWidth;
        if(windowHeight != 0) screenHeight = windowHeight;

        myWindow.setSize(screenWidth + 6, screenHeight + 28);
        
        myControle = new ControlerObject(this);
        myControle.setDebugMode(true);
        myControle.setupDebugFile();
        
        setBackground(Color.BLACK);
        addKeyListener(this);
        addMouseListener(this);
        addMouseMotionListener(this);
        setFocusable(true);
        setDoubleBuffered(true);
        setSize(windowWidth, windowHeight);
        
        if(isFullscreen) {
            try {
                setFullScreen();
                myControle.writeToDebugFile("Initiated Fullscreen");
            } catch(Exception e) {
                System.out.println("Trouble in fullscreen land: " + e);
            }
        }
        
        bitmapFact = new BitmapFactory(this);
        myControle.writeToDebugFile("BitmapFactory - LOADED");
        bitmapFact.loadImages();
        myControle.writeToDebugFile("Images - LOADED");
        input = new InputControle(this);
        input.setupKeyBindings();
        myControle.writeToDebugFile("InputControle - LOADED");
        maps = new Mapper(this, 0, 0);
        
        //TESTCASE
        hero = new Player(this);
        hero.setName("testchar");
        hero.setPosition(400, 300);
        
    }