Experimenting with different Design Patterns