Статья - перевод из английской википедии. Тут еще много чего нужно сделать, но лень.