adding the whole program