A working version of a generic type GVM