add override __new__