add required externals
reorganize dirs