breaks below up into blocks to make it more readable, maybe add a single line of comment per block