Third part coming soon, and second will undergo some fixes. Critique is welcome.