made some methods abstract
made some methods abstract