Top-down and bottom-up design