fleshing out model logic