revised saving interface