more refinements
test pass
rework test for new requirements