use type replace the struct