fix canRead when already read and fix currentFrame handling