fixed abstract method