david preston