Well, it is said the best way to learn something is to reinvent wheel on it. Ta-dah!