Bin: Fixed a bug in move, reorganise the code structure.

Got 8.40 but still don't know why the following tests failed:

1. [Test Description] die rate
    [Observed Error] org.scalatest.exceptions.TestFailedException: An infected person should have a probability to die. It seems in your program, an infected person can never die after 14 days.
    [exception was thrown] detailed error message in debug output section below

2. [Test Description] life cycle
    [Observed Error] org.scalatest.exceptions.TestFailedException: Infected person should become sick after 6 days
    [exception was thrown] detailed error message in debug output section below