Optimized initialization
Added SurfaceLayout