DesignPattern: Preliminary code

not ready yet... need to add discussion