Lots of changes + comments