add feature detect