bounds checked