Lots of changes , implentations and fixes