add prepare flag to SourceAsyncGetter; fix minor bug