public void addButton(String image_filepath, String toolTip, UnitType t) {
        
        
        // create a new infoButton instance with its corresponding tooltip
        ImageIcon buttonIcon = new ImageIcon(image_filepath);
        
        buttonIcon = new ImageIcon(buttonIcon.getImage()
                .getScaledInstance(Consts.BUTTON_SIZE,Consts.BUTTON_SIZE,Image.SCALE_SMOOTH));

        InfoButton button = null;
        
        switch(t) {
        	case TOWER:
	        	button = new TowerButton(Consts.TowerType.SLOWTOWER, toolTip, _gameMap, _handler);
	        	break;
        	case RUNNER:
	        	button = new RunnerButton(buttonIcon, toolTip, _gameMap, _handler);
	        	break;
        	case BONUS:
	        	button = new BonusButton(buttonIcon, toolTip, _gameMap, _handler);
	        	break;
        }
        
        
        // set the location and the size of the button
        button.setSize(_buttonDimSize, _buttonDimSize);
        button.setLocation(_nextY * Consts.BUTTON_SIZE, _nextX * Consts.BUTTON_SIZE);
        this.add(button);
        
        _nextX++;
        if( (_nextX+1) * Consts.BUTTON_SIZE > this.getWidth() ) {
            
            _nextY++;
            _nextX = 0;
            if( (_nextY + 1) * Consts.BUTTON_SIZE > this.getHeight() ) {
                return ;
            }
        }
        
    }