This is project for purposes of learning and practicing.