progfun assignment 1