started a more general approach