demo of design patterns (based on M.Fowler's book)