design and client

Finish implementing the observer pattern design and get a main
method/client setup.