Many improvements. See  README.md