fix: move externalproject to the same file