shouldn't we use the sync version of this method?