Moved add and edit logic to finds model.
+ tidied code
+ fixed issue with repopulating invalid edit form
+ added ID generation methods to model and abstract model to limit inheritance