splitting new/edit up in two child classes with parent class, because they share most methods