Implementation of tutorials from http://speclj.com/tutorial/