implement missing abstract method