protected read / write