i wanted to avoid passing state as method params as much as i could. this seemed like a sane way to do it.