implemented missing abstract method