Making it more general