reformatted a lot
merged