added 2 abstract methods