made a few changes on my own, still a few left