more breakpoint friendly refactoring