usage of interface instead of implementation
introduced VertexSceneContext