particle takes type argument