some more refinement