Updated on July 22th- small mistakes fixed