public void update(long currentTime) {
        if (Display.isCloseRequested()) {
            game.quit();
        }

        handleInputEvents();

        staticComponents.update(currentTime);
        dynamicComponents.update(currentTime);

        if (staticComponents.hasNewData()) {
            bufferData(vboStaticHandle, staticComponents, staticComponents.hasNewVertexData(), staticComponents.hasNewTextureCoordsData(), staticComponents.hasNewColorData());
            needsRedrawn = true;
        }
        if (dynamicComponents.hasNewData()) {
            bufferData(vboDynamicHandle, dynamicComponents, dynamicComponents.hasNewVertexData(), dynamicComponents.hasNewTextureCoordsData(), dynamicComponents.hasNewColorData());
            needsRedrawn =  true;
        }
    }