Try tgreisser's feedback, reduce model boilerplate