Fixed string formatting.
Split delegation from __init__ in Client.
Wrapped main behavior in a main() function.
Rejiggered the classes to actually use decorator syntax and commented an explanation on how the @ syntax works. Also wrapped the executing code in a main() function.
Added list of current patterns.