only return if no callback given