no need for __new__, that just causes more problems