proof (needs two cases)