interface implementation bug fix