address as many comments as I could