use the laziness to simplify things
make CPS version of program work properly