stats move logic to model