Change Log:
 -- some code refactoring,
 -- added base class for models, views, controllers
 -- added primary customer concept