always have to initialize d_type