this looks wrong we need self.offset I think
Why is this not caught by the test suite?