implements IValuable