warn instead of throw