lots of reformatting