add - closures and variables. needs to be redone. to do