fixed sync vs non-sync calls