__new__(cls, *args, **kwargs): Static method that creates and returns a new instance
__init__(self, *args, **kwargs): Instance method that initializes the object
Order: __new__ is called first, then __init__
Purpose: __new__ for creation, __init__ for setup
Return: __new__ must return an instance, __init__ returns None