catchup with @nedbat