lots of improvements and additions