william foster