High-level design overview