add new constructor
allow contents update
implement paint cell
initialize value when needed
initialize data