support for all types under the same call