tweak implementation to reflect async changes