refactored save, finished fetch