base class and demo completed