partitioning and designing