added abstract member functions
added abstract member functions