refactor section dispatch