updated and reformattted