almost done implementing closures