make fill_ private and create methods and accessors to keep in sync with datasize_
replace direct access to fill_ with accessors in base