add deps and function wrapper