reorganize … final version