Changes making it more general