refactoring to extract the idea of passages