Huge update - lots more to come.