the whole program so far