simplified dispatch with a helper function