added 'factor' option so that interfaces can be factored into subinterfaces