fixed abstract method bug