Essential functionality: read / write / initialize