again we reach chkp1, but this time, the code is much cleaner than the first time