spawn pre-upgrade scripts as child processes
run pre upgrade scripts as shell scripts, rewrite setTimeout() logic in tests
update README