After lots of experimentation: Blocks n springs