Please refer to the assignment for more detail.