modify __new__