View the source for the implementation.
There's an article discussing the approach here
more content
come content