Lots of changes made ):