multiple source file support