Go back to much simpler earlier version 2e676a0b4a5ff8dcb422c3efafceed453330b67f