Added an abstract VM support class