factorize thunk creation
factorize calling thunks