added source file support