implemented most remaining features re: cycle read / write