work on the app model, reworked add/edit process