what is end-to-end design