added own VideoSurface class and lazy initialization