William porterfield