Adding design patterns

Commented out code from old design

Adding tests

Adding README.md from master branch

Updating title

Adding README.md from master branch