modify the structor