Made the lookup clever

If opts is of type string, we can safely assume a string to lookup is given on purpose; use that. Else, we verify if required objects are given (making the new detection system not break previous changes).