Added most changes suggested