horrible wip +missing ensureFuncs