change to save with validation