Updated and rearranged.