version 0.2, reconstruct the program