can be with and without openGL part