Add push option
Add __slots__