created the actual GVF function