Pattern
Design & Recuresion