Another cs193p assignment (#5)