a bit more work, stopping point