add type specialization