expose detective as an option

User can override what is used to detect requires.