arg, waste a bunch of time due to invvar versuse var