some io goodness, move setval to caller to see