edge case when needle is "" would cause runtime errors...whups