Python list already is pretty much need of a support enqueue and dequeue operations and the problem with the Python list is they're dynamically allocated, they are dynamically tight and that makes them not very fast. And so by allocating a fixed-sized storage region of statically tight memory, where the "i" here means that our queue is only going to be able to store integers we can avoid some of Python's dynamic checks that makes the queue slow and so in some cases, a queue based on a Python list is perfectly fast but on the other hand in some benchmarking that I did, this statically sized, statically tight queue is more than 10 times faster than a queue based on a Python list. So the first method that queue supports is the empty method and this simply returns true if self.size equals zero--so of course the empty queue is the one that currently contains zero elements.