william cooper