removed optional type in arguement. added in abstract method