closes #139
refactored edit+new into 1 DRY function