allow InitSource to return either a Future<Source> or a Source directly