basic cs109 framework