Move presentation logic out of models