program partial implementation