Project for self-education. In progress.