implement update functions to interact with hardware; rename address/quantity to index/length