add support for custom specializations