add source files and setup script