Small project for training purpose.