major additions and reformatting