added 'read' and 'write'