Too many changes to list. Will ammend later