more refinement
TODO