David Koepp (n.