made a bunch of improvements