This is my semester project for revision.