add constructor parameter for choose detector