david stephen porter