updated and formatted