Adding PHP5 Design Patterns