How does this work ? The init function returns a future ??