formatted it to make it easier to understand. going through it line by line