first pass at view / data separation