john patterson