rename thunk to func