Much simpler, cleverer method