Structure High cohesion Each function performs exactly one task Low coupling Each function has minimal reliance on other functions Low cohesion and high coupling make code hard to read and maintain eg. solution for Week 1 Wed Q4