refactor subbytes to allow negative bounds