read directly from capacity, if possible