implemented all exercise changes