Refactor various models into a single model