redid the withthing functions, as they didn't compose well. Added vars1, vars2, vars3, and imported some Applicatives