james l. porter