Bounds checking hopefully correct..