Add a saving interface that takes a fd