spruced it up a bit, add .call method to refactor. also add all parameters to nested each function in other helper functions to pass to .call