public virtual void update() { throw new NotImplementedException("These function must be overloaded from derived class."); }