simplifying async down to one class