edge-to-core design