abstractions to work with several VGS sytems