Top-down or design-first Approach