Could we cache the moduleState?