overcomplicated async setup, with the future in mind