updated with corrections