adding support for custom input types