finish implements and extends