updated with all the latest updates