save, better validation