made proof more general