refactor to adapt to future dynamic result blocks