change: move data logic to model