More work on breaking the donut abstraction up into simple manageable pieces.