Updated with some corrections