Lot's of changes both in structure and code.