(I would also take a close look at these magic getters and see if there's a way to simplify them; but that's a separate issue.)