use TypeSafety of dsa