breakpoints + major refactoring