an interface implementation problem