Add support for arbitrary input types