tons of improvements and corrections