My implementation of the programming assignment #2.